http://acm.hit.edu.cn/hoj/problem/view?id=1533
用字符串表示整数,进行大数加法运算
/*This Code is Submitted by billforum for Problem 1533 at 2012-03-30 14:50:02*/
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stack>
using namespace std;
int main()
{
string t1,t2,t;
int z;
int num;
while(scanf("%d",&num)!=EOF)
{
if(num==1||num==2)
{
printf("1\n");
}
else
{
t1="1";
t2="1";
for(int k=3;k<=num;k++)
{
int i,j;
z=0;
t="";
for(i=t1.length()-1,j=t2.length()-1;i>=0;i--,j--)
{
t+=(char)((t1[i]-48+t2[j]-48+z)%10+48);
z=(t1[i]-48+t2[j]-48+z)/10;
}
for(i=j;i>=0;i--)
{
t+=(char)((t2[i]-48+z)%10+48);
z=(t2[j]-48+z)/10;
}
if(z>0)
{
t+=(char)(z+48);
}
t1="";
t1=t2;
t2="";
for(int ii=t.length()-1;ii>=0;ii--)
t2+=t[ii];
}
cout<<t2<<endl;
}
}
return 0;
}