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
", TOTAL - sum);

    return 0;
}



原文地址:https://www.cnblogs.com/tigerisland/p/7563906.html