前言:历史性的第一步
输入两个正整数a,b,输出a,b的值。
法一:
平平无奇的代码
#include<iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a+b;
return 0;
}
法二:
函数型
#include<iostream>
using namespace std;
int f(int n,int m)
{
return n+m;
}
int main()
{
int a,b;
cin>>a>>b;
cout<<f(a,b);
return 0;
}
法三:
大整数加法
#include<bits/stdc++.h>
using namespace std;
struct big_num
{
int num[201]={0};
int len;
};
big_num add(big_num a,big_num b)
{
big_num c;
int n=max(a.len,b.len)+1;
c.len=n;
int w=0;
for(int i=0;i<n;i++)
{
c.num[i]=a.num[i]+b.num[i]+w;
w=c.num[i]/10;
c.num[i]=c.num[i]%10;
}
return c;
}
void print(big_num c)
{
for(int i=c.len-1;i>=1;i--)
{
if(c.num[i]==0)
c.len--;
else
break;
}
for(int i=c.len-1;i>=0;i--)
{
cout<<c.num[i];
}
}
int main()
{
string a,b;
cin>>a>>b;
big_num x,y;
x.len=a.size();
y.len=b.size();
for(int i=x.len-1;i>=0;i--)
{
x.num[x.len-i-1]=a[i]-'0';
}
for(int i=y.len-1;i>=0;i--)
{
y.num[y.len-i-1]=b[i]-'0';
}
print(add(x,y));
}
以上就是此题题解,希望对您有帮助