HDU1212加深下对取模运算的理解

Big Number

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3771    Accepted Submission(s): 2586

Problem Description
As we know, Big Number is always troublesome. But it's really important in our ACM. And today, your task is to write a program to calculate A mod B.
To make the problem easier, I promise that B will be smaller than 100000.
Is it too hard? No, I work it out in 10 minutes, and my program contains less than 25 lines.
 
Input
The input contains several test cases. Each test case consists of two positive integers A and B. The length of A will not exceed 1000, and B will be smaller than 100000. Process to the end of file.
 
Output
For each test case, you have to ouput the result of A mod B.
 
Sample Input
2 3 12 7 152455856554521 3250
 
Sample Output
2 5 1521
 
 1 //原理: (a+b)%c = ((a%c)+(b%c))%c
 2   //    (a*b)%c = ((a%c)*(b%c))%c
 3 #include <iostream>
 4 #include <cstdio>
 5 #include <cstring>
 6 using namespace std;
 7 #define maxn 1000+5
 8 
 9 int num[250];
10 char numc[maxn];
11 
12 int main()
13 {
14     int b;
15     while(cin>>numc>>b)
16     {
17         int i = strlen(numc) - 1;
18         int p = 1,ans = 0;
19         while(i>=0)
20         {
21             ans = (ans + (numc[i]-'0')*p)%b;
22             p *= 10;
23             p %= b;
24             i--;
25         }
26         cout<<ans<<endl;
27     }
28 }
View Code
原文地址:https://www.cnblogs.com/Skyxj/p/3210984.html