Description
7个人分球,共有n 个球,所有人得到的球必须相等。请输出最少剩下的球数。
Input
输入一行一个正整数 n(可能存在前导零)。
Output
输出一行一个整数,如题所述答案。
50
-
Sample Input
1
-
Sample Output
HINT
对于 40% 的数据:n ≤ 10^10;
对于 100% 的数据:n ≤ 10^1000000。
一眼看去,要用高精度?这就要MLE了.
事实上,边输入边取模就行.
#include <iostream>
#include <cstdio>
using namespace std;
int main(void)
{
int tot = 0;
char c;
while (cin >> c) // 输入直到EOF.
{
tot *= 10; // 把原来的上一位作为十位
tot += c - '0'; // 加上现在的个位
if (tot > 6) // 可以取模
{
tot %= 7; // 那么就爽快地取模
}
}
printf("%d", tot);
return 0;
}

本文介绍了一种在处理大规模数字时进行高效取模运算的方法,特别适用于当数字大小超出常规整型变量范围的情况。通过边读入边取模的方式,避免了内存溢出的问题,确保算法在处理百万级位数的数字时仍能保持高效运行。
2万+

被折叠的 条评论
为什么被折叠?



