设为首页 加入收藏

TOP

C语言的大数相加
2014-11-23 22:25:46 来源: 作者: 【 】 浏览:2
Tags:语言 大数 相加

两个很大的数相加,可以用两个字符串str1和str2进行操作,参考程序如下:

#include
#include
#include

using namespace std;

int main(void)
{
string str1,str2;
stackstack_ex;
int str1_length,str2_length;
int carry = 0;//进位的控制
int tmp;

while(cin >> str1 >> str2)
{
str1_length = str1.size();
str2_length = str2.size();

int i = str1_length - 1;
int j = str2_length - 1;
for(; i >= 0 && j >= 0; i--,j--)
{
tmp = str1[i] - 0 + str2[j] - 0 + carry;
if(tmp < 10)
{
carry = 0;
stack_ex.push(tmp);
}
else
{
carry = 1;
stack_ex.push(tmp % 10);
}
}

if(str1_length >= str2_length)
{
for(; i >= 0; i--)
{
tmp = str1[i] - 0 + carry;
if(tmp < 10)
{
carry = 0;
stack_ex.push(tmp);
}
else
{
carry = 1;
stack_ex.push(tmp % 10);
}
}
}
else
{
for(; j >= 0; j--)
{
tmp = str2[j] - 0 +carry;
if(tmp < 10)
{
carry = 0;
stack_ex.push(tmp);
}
else
{
carry = 1;
stack_ex.push(tmp % 10);
}
}
}
while(!stack_ex.empty())
{
cout<< stack_ex.top();
stack_ex.pop();
}
cout<}
return 0;
}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇c语言中字符串处理c语言中字符串.. 下一篇C语言运算符优先级普遍存在的一个..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: