HDU 1212 Big Number(大数取模)

来源:互联网 发布:骑士比赛数据统计 编辑:程序博客网 时间:2024/04/30 04:05

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

【思路分析】
   用了大数取模最基本的方法——按位取模。

代码如下:
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int maxn = 100005;int mod,len,ans;char s[maxn];void init(){    len = strlen(s);    ans = 0;}void solve(){    for(int i = 0;i < len;i++)    {        ans = (ans * 10 + (s[i] - '0') % mod) % mod;    }    printf("%d\n",ans);}int main(){    while(scanf("%s%d",s,&mod) != EOF)    {        init();        solve();    }    return 0;}



0 0