您的位置:首页 > 其它

NYOJ 求余数

2014-03-07 11:23 197 查看


求余数

时间限制: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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息