Big Number(大整数取模)

Big Number

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

Total Submission(s): 4789    Accepted Submission(s): 3329

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省赛集训队选拔赛之热身赛

意解:大整数取模运算,类似于整数除法(手算),比如512 % 10,我们手算是51 % 10 = 1,之后1 * 10 + 2 = 12,在12 % 10  =  2,就结束了;

AC代码:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>

using namespace std;
typedef long long ll;

int main()
{
    char s[1100];
    int mod,len;
    while(cin>>s>>mod)
    {
        ll sum = 0;
        len = strlen(s);
        for(int i = 0; i < len; i++)
        {
            sum = (sum * 10 + s[i] - '0') % mod;
        }
        cout<<sum<<endl;
    }
    return 0;
}
时间: 2024-10-22 13:29:06

Big Number(大整数取模)的相关文章

poj2305-Basic remains(进制转换 + 大整数取模)

进制转换 + 大整数取模一,题意: 在b进制下,求p%m,再装换成b进制输出. 其中p为b进制大数1000位以内,m为b进制数9位以内二,思路: 1,以字符串的形式输入p,m; 2,转换:字符串->整数 十进制->b进制; 3,十进制下计算并将整形结果转换成字符串形式,并倒序储存; 4,输出.三,步骤: 1,输入p[],m[]; 2,字符串->整形 + 进制->b进制: i,进制转换语句:m2 = m2*b + m[j]-'0'; ii,大整数取模,大整数可以写成这样的形式: 12

【数论】2016中国大学生程序设计竞赛 - 网络选拔赛 A. A water problem (大整数取模)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5832 题意:两个星球,一个星球一年只有137天,一个星球一年只有73天 输入N(爆炸后第N天),判断这是否为这两个星球的第一天 只要这个数是137与73的公倍数就好了(0比较特殊) 坑点:N的长度不超过10000000 只能用字符串来存储 大整数整除:紫书P314 大整数整除:首先把大整数写成"自左向右"的形式:1234 = (((1*10)+2)*10+3)*10+4 然后每步取模 代码 1

大整数取模运算出现运算结果负数的解决方案

首先我们看个例子 <?php echo 12121212121 % 1000000; //结果为 -689767 //实际应该为12121 ?> 这里的取模运算(取余数)出现了BUG.那么需要声明一下,负数也是可以取模操作的,并不是出现负数就是不对的我们应该把这种长整数类型看成float型数据进行处理介绍一个函数float fmod ( float $x , float $y )返回除法的浮点数余数通过这个函数的运算,就可以得到原本想要的余数结果 <?php $a = floatval(

FZU 1759-Super A^B mod C(快速幂+大整数取模+欧拉函数)

题目链接:点击打开链接 题意:计算 a^b %c 但其中b很大,可能会达到10^1000000, 故有降幂公式 a^b %c= a^(b%phi(c)+phi(c)) %c  (b>=phi(c)) #include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <string> #include <cctype> #

大整数取模,秦九韶

#include <stdio.h> #include <string.h> #define MAXN 1000005 char s[MAXN]; int main () { int t; scanf("%d",&t); while(t--) { getchar(); int mod; scanf("%d",&mod); scanf("%s",s); int len = strlen(s); int ans

A water problem 大整数取模

A water problem Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 5814    Accepted Submission(s): 1238 Problem Description Two planets named Haha and Xixi in the universe and they were created wit

大整数取模

#include<cstdio> #include<cstdlib> #include<cstring> #define N 10000 int main() {     char str[N];     int len;int i;     int mod;     int ans=0;     int Case;     scanf("%d",&Case);     while(Case--){     scanf("%s&qu

大组合数取模之lucas定理模板,1&lt;=n&lt;=m&lt;=1e9,1&lt;p&lt;=1e6,p必须为素数

typedef long long ll; /********************************** 大组合数取模之lucas定理模板,1<=n<=m<=1e9,1<p<=1e6,p必须为素数 输入:C(n,m)%p 调用lucas(n,m,p) 复杂度:min(m,p)*log(m) ***********************************/ //ax + by = gcd(a,b) //传入固定值a,b.放回 d=gcd(a,b), x , y

Lucas定理--大组合数取模 学习笔记

维基百科:https://en.wikipedia.org/wiki/Lucas%27_theorem?setlang=zh 参考:http://blog.csdn.net/pi9nc/article/details/9615359 http://hi.baidu.com/lq731371663/item/d7261b0b26e974faa010340f http://hi.baidu.com/j_mat/item/8e3a891c258c4fe9dceecaba 综合以上参考,我做的一下总结: