Title Link: http://acm.hdu.edu.cn/showproblem.php?pid=1212
Big numberTime
limit:2000/1000 MS (java/others) Memory limit:65536/32768 K (java/others)
Total Submission (s): 7083 Accepted Submission (s): 4884
Problem Descriptionas 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.
The problem easier, I promise that B'll be smaller than 100000.
Is it too hard? No, I work it out in the minutes, and my program contains less than lines.
Inputthe input contains several test cases. Each test case consists of positive integers A and B. The length of A would not exceed, and B would be smaller than 100000. Process to the end of file.
Outputfor Each test case, you have to ouput the result of A mod B.
Sample Input
2 312 7152455856554521 3250
Sample Output
251521
Authorignatius.l
SOURCE Hangzhou Electric ACM Provincial Training Team Qualifying matchThe main topic: give you a length of not more than 1000 of the large number A, there is a not more than 100000 B, quickly seek a% B.
Problem-solving ideas: the first kind: according to the normal division of the method of a person except down.
the second type:
As an example, 1314 7 = 5
By Qin Jiushao formula:
1314= ((1*10+3) *10+1) *10+4
So there are
1314% 7 = (((1 * 10 7 +3) *10% 7 + 1) *10% 7 +4)%7
See the code.
#include <iostream> #include <cstdio> #include <cstring>using namespace Std;char a[100000+10];int Main () { int b; while (~SCANF ("%s%d", a,&b)) { int len=strlen (a); int Pre=0,ans; for (int i=0; i<len; i++) { ans=pre*10+a[i]-' 0 '; pre=ans%b; } printf ("%d\n", pre); } return 0;}
HDU 1212 Big number (large numbers modulo)