高精度运算——A mod B

来源:互联网 发布:nba数据网址 编辑:程序博客网 时间:2024/05/22 00:31

Big Number

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 312 7152455856554521 3250

Sample Output

251521

 

仍然是小学知识给的启示。列出一个除法的竖式,从最高位开始除,余数乘10加下一位上的数,再除。循环进行。

所以代码非常简单。

[plain] view plain copy
  1. #include<stdio.h>  
  2.   
  3. #include<string.h>  
  4.   
  5. int main()  
  6.   
  7. {  
  8.   
  9.  intn,sum,i,k;  
  10.   
  11.  char s[1001];  
  12.   
  13.  while(scanf("%s%d",s,&n)!=EOF)  
  14.   
  15.  {  
  16.   
  17.  k=strlen(s);  
  18.   
  19.  sum=0;  
  20.   
  21.  for(i=0;i<k;i++)  
  22.   
  23.   {  
  24.   
  25.   sum=sum*10+s[i]-'0';  
  26.   
  27.   sum=sum%n;  
  28.   
  29.   }  
  30.   
  31.  printf("%d\n",sum);  
  32.   
  33.  }  
  34.   
  35.  return 0;  
  36.   
  37. }