大数求余/取模

 1 /**2016中国大学生程序设计网络赛赛HDU
 2    1001大数求余
 3 */
 4 
 5 #include "iostream"
 6 #include "cstdio"
 7 #include "cstring"
 8 using namespace std;
 9  char s[100000002];
10 int main() {
11 
12   int t=1;
13   while(~scanf("%s", &s)) {
14 
15     int m = 0,n=0;
16     for(int i = 0; i <strlen(s); i++)
17      {
18        m = (m*10+s[i]-'0')%73;
19        n = (n*10+s[i]-'0')%137;
20      }
21 
22      if(m==0&&m==0)
23      {
24         printf("Case #%d: YES\n",t);
25      }else{
26         printf("Case #%d: NO\n",t);
27      }
28     t++;
29   }
30   return 0;
31 }

 

///大整数取模
/**
输入正整数n m输出n mod m n<=10^100 m<=10^9
*/

将大整数写成自左向右形式:1234=((1*10+2)*10+3)*10+4

 1 #include "cstdio"
 2 #include "cstring"
 3 #include "cstdlib"
 4 using namespace std;
 5 int main()
 6 {
 7     char n[101];
 8     int m;
 9     while(~scanf("%s%d",n,&m)&&m)
10     {
11         int len=strlen(n);
12         int ans=0;
13         for(int i=0;i<len;i++)
14             ans=(int)(((long long)ans*10+n[i]-'0')%m);
15         printf("%d\n",ans);
16     }
17     return 0;
18 }

 

posted @ 2016-08-17 10:47  kimsimple  阅读(349)  评论(0编辑  收藏  举报