加法:(字符串模拟小学加法)

 string add(string s1, string s2) {
int len1 = s1.length(), len2 = s2.length();
int maxlen = max(len1, len2) + ;
string res(maxlen, '');
int flag = ;
int i = len1 - , j = len2 - , k = maxlen - ;
for (; i >= && j >= ; i--, j--) {
int temp = (s1[i] - '') + (s2[j] - '') + flag;
flag = temp / ;
res[k--]= temp % + '';
}
while (i >= ) {
int temp = s1[i--] - '' + flag;
flag = temp / ;
res[k--] = temp % + '';
}
while (j >= ) {
int temp = s2[j--] - '' + flag;
flag = temp / ;
res[k--] = temp % + '';
}
res[k] = flag + '';
if (flag) {
return res;
} else {
return res.substr();
}
}

减法:

乘法:

除法:

取模:

1)(a * b) % m = (a % m * b % m) % m

= (a % m * b) % m

= (a * b % m) % m

2)   (a + b) % m = (a % m + b % m) % m

= (a % m + b) % m

= (a + b % m) % m

举例子:

1234 % m = ((((1 * 10) + 2) * 10 + 3) * 10 + 4) % m

= (((((1 * 10) + 2) * 10 + 3) * 10) % m + 4) % m

= (((((1 * 10) + 2) * 10 + 3) % m * 10) % m + 4) % m

 long long mod(string s, int m) {
//假设字符串s符合条件,代表一个整数(正数或者负数)
int len = s.length();
int start = ;
if (s[] == '-') {
start = ;
}
long long num = ;
for (int i = start; i < len; i++) {
num = (num * + s[i] - '') % m;
}
return num;
}

C++ 大数运算(加减乘除取模)的更多相关文章

  1. Codeforces Round #260 (Div. 2) A B C 水 找规律(大数对小数取模) dp

    A. Laptops time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  2. HDU4704Sum 费马小定理+大数取模

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4704 题目大意: 看似复杂,其实就是求整数n的划分数,4=1+1+2和4=1+2+1是不同的.因而可 ...

  3. hdu-5666 Segment(俄罗斯乘法or大数乘法取模)

    题目链接: Segment Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) P ...

  4. Powmod快速幂取模

    快速幂取模算法详解 1.大数模幂运算的缺陷: 快速幂取模算法的引入是从大数的小数取模的朴素算法的局限性所提出的,在朴素的方法中我们计算一个数比如5^1003%31是非常消耗我们的计算资源的,在整个计算 ...

  5. 《Java语言实现快速幂取模》

    快速幂取模算法的引入是从大数的小数取模的朴素算法的局限性所提出的,在朴素的方法中我们计算一个数比如5^1003%31是非常消耗我们的计算资源的,在整个计算过程中最麻烦的就是我们的5^1003这个过程 ...

  6. JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)

    当基础数据类型长度无法满足需求时可以使用大数类 构造方法接受字符串为参数 BigInteger bInt = new BigInteger("123123"); BigDecima ...

  7. 【大数取模】HDOJ-1134、CODEUP-1086

    1086: 大数取模   题目描述 现给你两个正整数A和B,请你计算A mod B.为了使问题简单,保证B小于100000. 输入 输入包含多组测试数据.每行输入包含两个正整数A和B.A的长度不超过1 ...

  8. 题解报告:hdu 1212 Big Number(大数取模+同余定理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1212 Problem Description As we know, Big Number is al ...

  9. a ^ b mod c 取模运算优化反思(老物)

    这是一篇嘲讽我之前的自己采用笨重愚蠢思想去解决问题的日志. RSA 加密与解密涉及到 a ^ b mod c 的问题,如何计算这个值呢? 我会选择 pow(a, b) % c, 事实上在写RSA的时候 ...

随机推荐

  1. Xcode 4.1实用小工具:模拟网络连接和带宽

    暂无评论 适用于Mac OS X Lion的开发套件Xcode 4.1中,有个新鲜的小工具叫做Network Link Conditioner(网络连接调节器),是一款具有高度可定制性的辅助工具,让用 ...

  2. web 多屏互动显示方案

    1 基于 local storage 实现的信息传递 相关插件 lsbridge.js https://github.com/krasimir/l... 且项目中有非常简单易懂的示例你需要了解的一些关 ...

  3. Linux上Redis安装和简单操作

    Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...

  4. 全排列函数next_permutation(a,a+n)

    #include<iostream> #include<algorithm> using namespace std; int main(){ ]; int n; cin> ...

  5. TP5 未定义变量:XXX

    TP5开发模式下报错级别非常高,哪怕变量未定义都直接抛出异常 应用公共函数文件  路径: application/common.php 在common.php文件写入 // 异常错误报错级别, err ...

  6. jQuery file upload --Multiple File Input Fields in One Form

    The plugin can be applied to a form with multiple file input fields out of the box. The files are se ...

  7. 系统句柄报too many files open

    对于一般的应用来说(象Apache.系统进程)1024完全足够使用.但是如何象java等单进程处理大量请求的应用来说就有点捉襟见肘了.如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too ...

  8. 导入 kotlin(7)

    导入包 除了默认导入之外,每个文件可以包含它自己的导入指令. 导入语法在语法中讲述.可以导入一个单独的名字,如.import foo.Bar // 现在 Bar 可以不用限定符访问也可以导入一个作用域 ...

  9. 新建一个浏览器APP

    安卓开发环境准备好了,试试新建一个浏览器程序吧 1.Start a new Android Studio Project 2.选这个像微信一样的样式 3.选择语言和版本 4.等待创建完成,拖一个Web ...

  10. KNN距离函数的简单拓展

    KNN--k-NearestNeighbor可以是是分类法中最简单的算法了. 大致的idea为:找出k各跟新数据点最像的点,看这些点主要属于哪类,那么新数据点也就属于哪类的了. 其伪代码如下: 1. ...