Time Limit:1000MS Memory Limit:32768K
23 7 123 9
2 6
在百度知道上看到的算法,不知道原理。
123 % 9 = 6
1 % 9 =1
(1*10 + 2) % 9 = 3
(3*10 + 3) % 9 = 6
规律:从第一位开始,将前面的余数*10与当前位相加,再模余数。
代码如下:
1 #include<iostream> 2 #include<string> 3 #include<strstream> 4 using namespace std; 5 int main() 6 { 7 string n; 8 int m; 9 while(cin>>n>>m) 10 { 11 int pre=0; 12 for(int i=0;i<n.length();i++) 13 { 14 int t=(int)(n[i]-‘0‘); 15 if(i==0) pre=t%m; 16 else 17 pre=(pre*10+t)%m; 18 } 19 cout<<pre<<endl; 20 } 21 return 0; 22 }
原文:http://www.cnblogs.com/verlen11/p/4185734.html