Problem B
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
string dp[210];
string sum(string s1,string s2)
{
if(s1.length()<s2.length())
{
string temp=s1;
s1=s2;
s2=temp;
}
int i,j;
for( i=s1.length()-1, j=s2.length()-1;i>=0;i--,j--)
{
s1[i]=char(s1[i]+(j>=0?s2[j]-'0':0));
if(s1[i]-'0'>=10)
{
s1[i]=char((s1[i]-'0')%10+'0');
if(i) s1[i-1]++;
else s1='1'+s1;
}
}
return s1;
}
int main()
{
dp[1]="1";
dp[2]="2";
for(int i=3;i<=209;i++)
{
dp[i]=sum(dp[i-1],dp[i-2]) ;
}
int n;
while(cin>>n)
{
if(n==0)
cout<<endl;
else{
cout<<dp[n]<<endl;
}
}
return 0;
}