回 帖 发 新 帖 刷新版面

主题:高精度算法问题(救命我废了)

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main(){
char a1[100],b1[100];
int a[100],b[100],c[100],lena, lenb,lenc,x,i;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
gets(a1);
gets(b1);
lena=strlen(a1);
lenb=strlen(b1);
for(i=0;i<=lena-1;i++) a[lena-i]=a1[i]-48;
for(i=0;i<=lenb-1;i++) b[lenb-i]=b1[i]-48;
lenc=1;   //这里为什么等于1啊,可不可以等于0.这看不懂
x=0;
while(lenc<=lena || lenc<=lenb)  //while循环后边就有点看不懂了。。。有大佬可以解析下吗
{
c[lenc]=a[lenc]+b[lenb]+x; //不应a[0] 加 b[0] 所以难道不应该lenc从0开始?
x=c[lenc]/10;
c[lenc]%10=10;
lenc++;

c[lenc]=x;
if(c[lenc]==0)
lenc--;
for(i=lenc;i>=1;i--)
cout<<c[i];
cout<<endl;
return 0;
}

回复列表 (共1个回复)

沙发

继续加油!

我来回复

您尚未登录,请登录后再回复。点此登录或注册