又是刚学c++的朋友,学会了A+B的问题后,就自己编程序用来算各种数,但是有时候算二三十位的时候,系统就会错误,这是为什么呢?
因为c++里定义的变量有限制,即使是最大的long long也只能承受十九位的数,这时候我们就要换一种算法了,高精度.
高精度主要用的是数组各个位相对
主要代码位
z=a[i]+b[i]+z;
这里有个魔鬼细节:但我的两个最大位相加时,可能会多出一位,而我们的数组就少了一位,变要加长数组的长度;。
if(z[lc]!=0)
{
lc++;
}
上全代码
#include#include using namespace std; string a,b; int la,lb,lc,x[1010],y[1010],z[1010],k; int main() { cin>>a; cin>>b; la=a.length(); lb=b.length(); for(int i=0;i lb) { lc=la; } else lc=lb; for(int i=0;i =0;i--)//最后要倒着输入数组 { cout< 可以去信息学奥赛一本通(C++版)在线评测系统网上1168上测试



