我的程序为什么不能输出结果啊?
#include<bits/stdc++.h>using namespace std;
void bignumjia(string a,string b)
{
a = '0' + a;
b = '0' + b;
string c;
int lena = a.length();
int lenb = b.length();
int lenc = max(lena,lenb);
for(int i = 1;i <= lenc;i++)
{
int q,p;
q = max(0,lena-i);
p = max(0,lenb-i);
c = a + b - '0';
}
for(int i = lenc-1;i >= 0;i--)
{
if(c > '9')
{
c++;
c -= 10;
}
}
//
cout << c;
}
int main()
{
string a;
cin >> a;
string b;
cin >> b;
bignumjia(a,b);
return 0;
} 可能是因为你的头文件的string类没有重载"<<"操作符。29行加点东西就能输出了
#include <bits/stdc++.h>
using namespace std;
void bignumjia(string a,string b)
{
a = '0' + a;
b = '0' + b;
string c;
int lena = a.length();
int lenb = b.length();
int lenc = max(lena,lenb);
for(int i = 1;i <= lenc;i++)
{
int q,p;
q = max(0,lena-i);
p = max(0,lenb-i);
c = a + b - '0';
}
for(int i = lenc-1;i >= 0;i--)
{
if(c > '9')
{
c++;
c -= 10;
}
}
//
cout << c.c_str();//改这里
}
int main()
{
string a;
cin >> a;
string b;
cin >> b;
bignumjia(a,b);
return 0;
} sunrise085 发表于 2021-1-30 17:32
可能是因为你的头文件的string类没有重载"
万分感谢 sunrise085 发表于 2021-1-30 17:32
可能是因为你的头文件的string类没有重载"
啊,那为什么这个代码又可以输出了啊?
#include<bits/stdc++.h>
using namespace std;
string add(string str1,string str2)//高精度加法
{
string str;
int len1=str1.length();
int len2=str2.length();
//前面补0,弄成长度相同
if(len1<len2)
{
for(int i=1;i<=len2-len1;i++)
str1="0"+str1;
}
else
{
for(int i=1;i<=len1-len2;i++)
str2="0"+str2;
}
len1=str1.length();
int cf=0;
int temp;
for(int i=len1-1;i>=0;i--)
{
temp=str1-'0'+str2-'0'+cf;
cf=temp/10;
temp%=10;
str=char(temp+'0')+str;
}
if(cf!=0)str=char(cf+'0')+str;
return str;
}
int main()
{
string a;
cin >> a;
string b;
cin >> b;
cout << add(a,b) << endl;
return 0;
}
页:
[1]