时间限制:1秒 空间限制:32768K
题目描述
现在有一个数组,其值为从1到10000的连续增长的数字。出于某次偶然操作,导致这个数组中丢失了某三个元素,同时顺序被打乱,现在需要你用最快的方法找出丢失的这三个元素,并且将这三个元素根据从小到大重新拼接为一个新数字,计算其除以7的余数。 例:丢失的元素为336,10,8435,得到的新数字为103368435,除以七的余数为2。
输入描述
现在输入数据为一行,包含9997个数字,空格隔开。
输出描述
输出为一行,包含一个数字。
样例输入
同题设例子输入
输出
2
解题思路
标记输入的9997个数,然后遍历从1到10000找到丢失的三个数,然后把它们按顺序组成一个数并对7求余。
#include <math.h>
#include <stdio.h>
int ans[10010];
int main()
{
int m, t = 9997;
long long sum = 0;
while (t--)
{
scanf("%d", &m);
ans[m]++;
}
for (int i = 1; i <= 9997; i++)
if (!ans[i])
sum = sum * pow(10, (int)log10(i) + 1) + i;
printf("%lld\n", sum % 7);
return 0;
}