这题目看一眼以为难度评级出错了,只是一个求余数的题目,,后来才发现,位数小于百万位,,,我还以为是大小小于百万呢,所以借鉴了另一大神的代码,
用大数,重点是同余定理:
(a+b)mod m=((a mod m)+(b mod m))mod m;
a*b mod m=(a mod m)*(b mod m) mod m;
a^b mod m=(a mod m)^b mod m;
#include<stdio.h> #include<string.h> #include<stdlib.h> char num[1000010]; int main() { long int i; int n,temp,t; scanf("%d",&n); while(n--) { scanf("%s",num); t=strlen(num); for(temp=0,i=0;i<t;i++) temp=(temp*10+num[i]-'0')%10003; printf("%d ",temp%10003); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。