码迷,mamicode.com
首页 > 其他好文 > 详细

(大数取模)Big Number hdu1212

时间:2018-06-11 11:04:11      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:imp   nta   contains   input   using   sts   clu   task   ace   

Big Number

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 9006    Accepted Submission(s): 6100

 

 

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

 

(ABC)%n=(A*100%n+B*10%n+C%n)%n

(A*B)%n=(A%n*B%n)%n

于是,可以利用循环,对于挺大的数,利用字符串来表示这个数。

比如,令ABC为字符串,则有

1)sum=A%n;

2)A%n*10+B%n=sum+B%n

于是sum=(sum+B%n)%n

3)经过循环,会有:

sum=(sum+C%n)%n=((sum+B%n)%n*10+C%n)%n=((A%n*10+B%n)%n*10+C%n)%n=((A*100%n+B*10%n)%n+C%n)%n=(A*100%n+B*10%n+C%n)%n

故而可以用循环求解。

技术分享图片
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string a;
    int b,len,sum;
    while(cin>>a>>b)
    {
        len=a.length();
        sum=0;
        for(int i=0;i<len;i++)
            sum=(sum*10+(a[i]-0)%b)%b;
        cout<<sum<<endl;
    }
    return 0;
}
View Code

用JAVA更简单

 

技术分享图片
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner (System.in);
        int n;
        BigInteger a,b;
        while(in.hasNextBigInteger()) {
            a=in.nextBigInteger();
            b=in.nextBigInteger();
            a=a.remainder(b);
            System.out.println(a);
        }
    }
}
View Code

 

(大数取模)Big Number hdu1212

标签:imp   nta   contains   input   using   sts   clu   task   ace   

原文地址:https://www.cnblogs.com/Weixu-Liu/p/9165366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!