0
已采纳
王欣怡
新手光能
新手光能
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int w[1000010],a[1000010],b[1000010];
void he()
{
w[0]=max(a[0],b[0]);
int jw=0,h;
for(int i=1;i<=w[0];i++)
{
h=a[i]+b[i]+jw;
w[i]=h%10;
jw=h/10;
}
if(jw!=0)
{
w[0]++;
w[w[0]]=jw;
}
}
int main()
{
char s1[1000010],s2[1000010];
cin>>s1>>s2;
a[0]=strlen(s1);
b[0]=strlen(s2);
for(int i=1;i<=a[0];i++)
a[i]=s1[a[0]-i]-'0';
for(int i=1;i<=b[0];i++)
b[i]=s2[b[0]-i]-'0';
he();
for(int i=w[0];i>=1;i--)cout<<w[i];
return 0;
}
贾老师讲的!!
100!!!
求采纳
0
0
0
王子翔
新手光能
新手光能
现在大佬们都不在线
这是错误代码,仅供参考
0分
char a1[100],b1[100];
int a[100],b[100],c[100];
int a1_len,b1_len,lenc,i,x;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
gets(a1);
gets(b1); //输入加数与被加数
a1_len=strlen(a1);
b1_len=strlen(b1);
for (i=0;i<=a1_len-1;i++)
{
a[a1_len-i]=a1[i]-48; //将操作数放入a数组
}
for (i=0;i<=b1_len-1;i++)
{
b[b1_len-i]=b1[i]-48; //将操作数放入b数组
}
lenc =1;
x=0;
while(lenc <=a1_len || lenc <=b1_len)
{
c[lenc]=a[lenc]+b[lenc]+x; //两数相加
x=c[lenc]/10; //要进的位
c[lenc]=c[lenc]%10; //进位后的数
lenc++; //数组下标加1
}
c[lenc]=x;
if (c[lenc]==0)
{
lenc--; //处理最高进位
}
for (i=lenc;i>=1;i--)
{
cout<<c[i]; //输出结果
}
cout<<endl;
0
王子健
初级天翼
初级天翼
大佬们最近都在预备考试了。
所以我来回答
void函数:
整形a[100000],b[100000];
void add(string s1,string s2)
{
memset(a,0,sizeof(a));//清零
memset(b,0,sizeof(b));
循环(int i=0;i<s1.size();i++)
{
a[i]=s1[s1.size()-i-1]-'0';
}
for(int i=0;i<s2.size();i++)
{
b[i]=s2[s2.size()-i-1]-'0';
}
int len=s1.size()>s2.size()?s1.size():s2.size();
for(int i=0;i<len;i++)
{
a[i]=a[i]+b[i];
a[i+1]+=a[i]/10;
a[i]%=10;
}
if(a[len]>0)len++;
for(int i=len-1;i>=0;i--)
{
cout<<a[i];
}
cout<<endl;
}
int main()函数:
string s1,s2;
输入>>s1>>s2;
add(s1,s2);
返回值0;
void函数上面有一段代码是:
#include<bits/stdc++.h> using namespace std;
寄的才拿(记得采纳)歇歇辣(谢谢了)
0