CCF NOI1038 玩扑克
问题链接:CCF NOI1038 玩扑克。
时间限制:
1000 ms 空间限制: 262144 KB
题目描述
又到休息时间了。两个小伙伴要玩扑克牌比大小的游戏:每人分到一种花色的扑克牌,然后每人随机出一张牌,大者胜,最后获胜次数多的人,赢一轮。
不开心的事发生了,玩了一轮后,发现扑克牌竟然少了一张。到底少了几呢?
你能写个程序,快速找到扑克x吗?
输入
输入一行,包括25个用空格分隔的数字(A表示为1,J、Q、K表示为11、12、13)。
输出
输出数字x,表示缺少的扑克牌数字。
样例输入
9 1 13 2 6 10 7 8 3 11 4 1 5 9 10 2 4 3 12 13 11 5 8 6 7
样例输出
12
数据范围限制
问题分析
这个题需要点技巧,更像智力题。
比对26张牌是一种方法,实现起来程序会比较繁杂。
求和是一种好办法,关键是要想到。
程序说明
(略)
- 计算问题可以直接用算法程序来解, 也可以分两步来解。两步的解法是先在数学上考虑,找出比较简单数学公式等,然后再用算法程序来解,这样会简单很多。
- 使用宏定义可以增加程序的可阅读性和可修改性。
参考链接:(略)。
100分通过的C语言程序:
#include <stdio.h> #define TOTAL (1 + 13) * 13 #define N 26 int main(void) { int val, sum, i; sum = 0; for(i=1; i<N; i++) { scanf("%d", &val); sum += val; } printf("%d\n", TOTAL - sum); return 0; }