求余数
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
3
-
描述
-
现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数除10003之后的余数
-
输入
-
第一行有一个整数m(1<=m<=8),表示有m组测试数据;
随后m行每行有一个自然数n。
输出
- 输出n整除10003之后的余数,每次输出占一行。 样例输入
-
3 4 5 465456541
样例输出
-
4 5 6948
来源
- 经典题目 上传者
-
张云聪
大数取模运算:对于一个大数求其%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] 代表数据每个位上的数据)#include<iostream> #include<cstring> #include<cstdio> #include<cstdlib> #define MAX 1000005 #define N 10003 using namespace std; char num[MAX]; int main(){ int m; scanf("%d",&m); while(m--){ scanf("%s",num); int len=strlen(num); int ans=0; for(int i=0;i<len;i++){ ans=(int)((ans*10+(num[i]-'0'))%N); } printf("%d\n",ans); } }
-
第一行有一个整数m(1<=m<=8),表示有m组测试数据;