社区讨论
图灵机+高精度,怎么过不了A+Bproblem
灌水区参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lqum363x
- 此快照首次捕获于
- 2024/01/01 15:41 2 年前
- 此快照最后确认于
- 2024/01/01 19:29 2 年前
有什么错误?(也就图一乐,无意义)
CPP#include<bits/stdc++.h>
using namespace std;
int ad(int a,int b)
{
if(a==0 && b==0)
{
return 0;
}
if(a==0)
{
return b;
}
if(b==0)
{
return a;
}
int c[a+b+2],d=0;
for(int A=0;A<a;A++)
{
c[A]=1;
}
c[a]=0;
for(int A=a+1;A<a+b+1;A++)
{
c[A]=1;
}
c[a+b+1]=0;
while(true)//condition I
{
if(c[d]==1)
{
d++;
}
else
{
c[d]=1;
d++;
break;
}
}
while(true)//condition II
{
if(c[d]==1)
{
d++;
}
else
{
d--;
break;
}
}
while(true)//condition III
{
if(c[d]==1)
{
c[d]=0;
}
else
{
break;
}
}
int e=0;
for(int A=0;A<a+b+2;A++)
{
if(c[A]==1)
{
e++;
}
}
return e;
}
int main()
{
string a,b;
cin>>a>>b;
int c=max(a.length(),b.length());
int d[c],e[c],f[c+1];
for(int A=0;A<c;A++)
{
d[A]=0;
e[A]=0;
f[A]=0;
}
f[c]=0;
int g=a.length(),h=b.length();
for(int A=1;A<=g;A++)
{
d[c-A]=int(a[g-A])-48;
}
for(int A=1;A<=h;A++)
{
e[c-A]=int(b[h-A])-48;
}
for(int A=1;A<=c;A++)
{
f[c-A+1]=ad(ad(d[c-A],e[c-A]),f[c-A+1]);
f[c-A]=ad(f[c-A+1]/10,f[c-A]);
f[c-A+1]%=10;
}
int i=0;
for(int A=0;A<=c;A++)
{
if(f[A]!=0)
{
i=1;
}
if(i)
{
cout<<f[A];
}
if(A==c && !i)
{
cout<<0;
}
}
}
感谢帮忙(也就图一乐,无意义)
回复
共 2 条回复,欢迎继续交流。
正在加载回复...