c_cpp 将大数字表示为字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 将大数字表示为字符串相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string add (string s, string k) {
int num, carry = 0;
string res;
int i=s.length()-1, j = k.length()-1;
if (i<j)
return add(k,s);
while (i>=0 && j>=0) {
num= carry + (s[i]-'0')+ (k[j]- '0');
carry = num/10;
res.push_back(num%10+ '0');
if (i==0 && num/10>0)
res.push_back(num/10+ '0');
i--;
j--;
}
while (i>=0) {
num= carry + (s[i]-'0');
carry = num/10;
res.push_back(num%10+ '0');
if (i==0 && num/10>0)
res.push_back(num/10+ '0');
i--;
}
reverse(res.begin(), res.end());
return res;
}
string multiply (string s, char k) {
int num, carry = 0;
string res;
for (int i=s.length()-1; i>=0;i--) {
num = carry + (s[i]-'0')*(k- '0');
carry = num/10;
res.push_back(num%10+ '0');
if (i==0 && num/10>0)
res.push_back(num/10 + '0');
}
reverse(res.begin(), res.end());
return res;
}
void func (string num1, string num2) {
int n1 = num1.length()-1, n2 = num2.length()-1;
string sum= "0";
for (int i=n2;i>=0;i--) {
string res = multiply (num1, num2[i]);
int j=n2-i;
while (j-->0)
res+= '0';
sum = add(sum, res);
}
cout<< sum;
return;
}
int main() {
string num, div;
string num1, num2;
getline(cin, num1);
getline(cin, num2);
func(num1, num2);
return 0;
}
以上是关于c_cpp 将大数字表示为字符串的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 除以表示为字符串的大数字
c_cpp 给定两个表示为字符串的数字,将数字作为字符串返回乘法。注意:数字可以任意大
将大数字(或字符串)压缩为小值
将大查询数据导出到云存储,整数字段更改为字符串格式,但浮点格式保持为数字格式
c_cpp 加一。加一个。给定一个非负数表示为数字数组,加上一个数字。存储数字使得t
c_cpp 将字符串转换为矢量(单个数字)