社区
C++ 语言
帖子详情
求两个大数的和
zxcvzxcvzxcvzxcvzxcv
2006-12-03 12:32:46
求两个很大的数的和,已经超过计算机能表示的范围,考虑正负,求高手指点
...全文
193
7
打赏
收藏
求两个大数的和
求两个很大的数的和,已经超过计算机能表示的范围,考虑正负,求高手指点
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
OOPhaisky
2006-12-04
打赏
举报
回复
用字符串或者数组
v2002750
2006-12-04
打赏
举报
回复
我用链表做过,比较傻,一个节点里面放一位。
sankt
2006-12-04
打赏
举报
回复
数组或者链表存储数据
superxiaomm
2006-12-04
打赏
举报
回复
大数问题,可以参考那些做rsa的文章,他们有大数类的
greenteanet
2006-12-03
打赏
举报
回复
给你一个大数相乘算法
#include <iostream>
#include <string>
using namespace std;
class slong
{
public:
slong()
{
_str = "";
}
slong(string str)
{
string::iterator itor = str.begin();
for(; itor != str.end(); ++itor)
{
if(*itor < '0' || *itor > '9')
throw "the parameter is error.";
}
_str = str;
}
slong(char* s)
{
if(s == NULL)
{
_str = "";
return;
}
size_t size = strlen(s);
for(size_t i = 0; i < size; ++i)
{
if(s[i] < '0' || s[i] > '9')
throw "the parameter is error.";
}
_str = s;
}
slong(const slong& sl)
{
_str = sl._str;
}
slong& operator =(const slong& sl)
{
if(&sl == this)
return *this;
_str = sl._str;
return *this;
}
slong operator *(slong& sl)
{
if(sl._str.length() == 0)
return *this;
int n = static_cast<int>(sl._str.length());
int m = static_cast<int>(this->_str.length());
int t = m + n - 1; // caculate times
string::reverse_iterator itor1, itor2;
int j = 0;
int k = 0;
int c = 0;
int r = 0;
int v = 0;
char s[2];
string rproduct;
for(int i = 0; i < t; ++i)
{
v = 0;
j = 0;
itor1 = _str.rbegin();
for(; itor1 != _str.rend(); ++itor1)
{
k = 0;
itor2 = sl._str.rbegin();
for(; itor2 != sl._str.rend(); ++itor2)
{
if(j + k == i)
{
v += ctoi(*itor1) * ctoi(*itor2);
break;
}
k++;
}
j++;
if(j > i)
break;
}
v += c;
r = v%10;
c = v/10;
itoa(r, s, 10);
rproduct += s;
}
if(c != 0)
{
itoa(c, s, 10);
rproduct += s;
}
string temp;
temp.resize(rproduct.length());
string::reverse_iterator ritor = rproduct.rbegin();
string::iterator itor = temp.begin();
for(; itor != temp.end(); ++itor)
{
*itor = *ritor;
ritor++;
}
slong product(temp);
return product;
}
int ctoi(char c)
{
return c - 48;
}
string value()
{
return _str;
}
private:
string _str;
};
int main( )
{
string s1, s2;
cout << "please input first operator" << endl;
cin >> s1;
cout << "please input second operator" << endl;
cin >> s2;
slong sl1(s1);
slong sl2(s2);
slong sl3 = sl1 * sl2;
cout << "the value is :" << endl;
cout << sl3.value() << endl;
char word;
while(cin >> word)
if(word == 'q')
break;
return 0;
}
sandrowjw
2006-12-03
打赏
举报
回复
老问题了,可以search一把看看。
msccao
2006-12-03
打赏
举报
回复
UP
机器学习数学基础之概率与统计推断视频教学
本课程讲解机器学习及人工智能学习当中所需概率和统计推断。课程为CSDN学院人工智能课程打造,系统全面而又深入浅出的讲解了学习当中需要的各种...统计推断部分包括
大数
定律和中心极限定理、极大似然估计、贝叶斯估计。
两个
大数
相加(Java)
两个
大数
相加 题目描述
两个
大数
相加。 1、是整数; 2、
两个
数无限大,long都装不下; 3、不能用BigInteger; 4、不能用任何包装类提供的运算方法; 5、
两个
数都是以字符串的方式提供。 思路 * 字符串逐位相加,...
算法:如何实现
两个
大数
相加
求
两个
大数
的和
c语言计算
两个
大数
相加,C语言计算
大数
相加的方法
本文实例为大家分享了C语言计算
大数
相加的具体代码,供大家参考,具体内容如下问题描述输入
两个
整数a和b,输出这
两个
整数
的和
。a和b都不超过100位。算法描述由于a和b都比较大,所以不能直接使用语言中的标准数据类型...
算法:
两个
大数
相加。
两个
大数
相加 听说这是个频繁出现的算法题,在某某网站是的排行很靠前。 在找工作之前,同事提过一次,我没当回事,恰恰在我第一家面试时就碰到了。
两个
大数
相加。 1、是整数; 2、
两个
数无限大,long都装不下...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章