加法
#include <iostream>
using namespace std;
const int maxn=600;
int add[maxn];
int main()
{
string a,b;
cin>>a>>b;
int m,n;
if(a.length()>b.length())
m=a.length();
else m=b.length();
for(int i=0;i<a.length();i++)
add[i]=a[a.length()-1-i]-48;
for(int i=0;i<b.length();i++)
add[i]+=b[b.length()-1-i]-48;
n=m;
for(int i=0;i<m;i++)
{
if(add[i]>=10)
{
add[i+1]+=add[i]/10;
add[i]%=10;
if(i==m-1)
n=m+1;
}
}
for(int i=n-1;i>=0;i--)
cout<<add[i];
cout<<endl;
return 0;
}
阶乘和,高精度乘法和加法#include <iostream>
using namespace std;
const int maxn=100;
int len=0;
int countup[maxn];
int temp[maxn];
void setblank()
{
temp[0]=1;
for(int i=1;i<maxn;i++)
temp[i]=0;
}
void multi(int k)
{
for(int i=0;i<=len;i++)
temp[i]*=k;
for(int i=0;i<=len;i++)
{
if(temp[i]>=10)
{
temp[i+1]+=temp[i]/10;
temp[i]%=10;
if(i==len)
len++;
}
}
}
void add()
{
for(int i=0;i<maxn;i++)
countup[i]+=temp[i];
for(int i=0;i<maxn;i++)
if(countup[i]>=10)
{
countup[i+1]+=countup[i]/10;
countup[i]%=10;
}
}
int main()
{
int n;
cin>>n;
for(int j=n;j>=1;j--)
{
setblank();
for(int i=1;i<=j;i++)
multi(i);
add();
}
for(int i=len;i>=0;i--)
cout<<countup[i];
cout<<endl;
return 0;
}
新闻热点
疑难解答