求余数
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
- 现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数除10003之后的余数
- 输入
- 第一行有一个整数m(1<=m<=8),表示有m组测试数据;
随后m行每行有一个自然数n。 - 输出
- 输出n整除10003之后的余数,每次输出占一行。
- 样例输入
-
3 4 5 465456541
- 样例输出
-
4 5 6948
- 来源
- 经典题目
- 上传者
- 张云聪
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; const int moder = 10000; const int maxn = 10005; const double pi = 3.1415926; int main() { int t; cin >> t; while(t--) { string s; cin >> s; ll sum = 0; for(ll i=0;i < s.length();i++) { sum = (sum*10+s[i]-'0')%10003; } cout << sum << endl; } return 0; }
大数取模运算:对于一个大数求其%N 的值,例如求1234 可以写成 1*1000+2*100+3*10+4 =((1*10)+2)*10+3)*10+4 所以 1234%N=(((1*10)%N+2)*10%N+3)*10%N+4%N程序关键点:设一整型数据ans存储结果 ans=0;ans=(ans*10+a[i])%N (a[i] 代表数据每个位上的数据)