程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 杭電OJ——1212 Big Number

杭電OJ——1212 Big Number

編輯:C++入門知識

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 3 12 7 152455856554521 3250     Sample Output 2 5 1521     Author Ignatius.L     Source 杭電ACM省賽集訓隊選拔賽之熱身賽     Recommend Eddy        在做題之前,先了解這樣一些結論: A*B % C = (A%C * B%C)%C (A+B)%C = (A%C + B%C)%C 如 532 mod 7 =(500%7+30%7+2%7)%7; 當然還有a*b mod c=(a mod c+b mod c)mod c; 如35 mod 3=((5%3)*(7%3))%3    有了這一些結論,題目就好做了!    代碼如下: [cpp]   #include<iostream>   #include<string.h>   using namespace std;   const int MAX=100010;         int main()   {       char str[MAX];       int s,len,sum;       while(scanf("%s%d",str,&s)!=EOF)       {           len=strlen(str);           sum=0;           for(int i=0;i<len;i++)           sum=(sum*10+(str[i]-'0')%s)%s;           cout<<sum<<endl;       }       return 0;   }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved