大数取余 ------(int范围)

思路:

   见代码注释部分。

 


 

 1 /*大数取余-------mod 为 (int范围)*/
 2 /*  具体做法:
 3    从大数最高位开始,只要其大于mod
 4    就实行取余,一直下去,最终得到余数
 5 例如:123 % 4  取一个中间变量t=0
 6       1<4  t=1
 7     --- 2  t=1*10+2=12>4  t=t%4=0
 8     --- 3  t=0+3=3        t=t%4=3
 9     --------------------  余数 3
10 */
11 #include<iostream>
12 #include<string>
13 #include<cstring>
14 using namespace std;
15 
16 int MOD(string a,int mod)
17 {
18  int len=a.length(),i;
19  int t=0;//中间变量,最终存储余数
20  for(i=0;i<len;i++)
21  {
22     t*=10;
23     t+=a[i]-'0';
24     if(t>=mod)
25         t=t%mod;
26  }
27   return t;
28 }
29 int main()
30 {
31     string a;
32     int mod;
33   while(cin>>a>>mod)
34   {
35     cout<<MOD(a,mod)<<endl;
36   }
37  return 0;
38 }

 

 

 

posted on 2012-07-25 08:51  L_S_X  阅读(1388)  评论(0编辑  收藏  举报

导航