#include<stdio.h>
#include<string.h>
#define M 55
char fib[M][1100];
void strRev(char[]);
int longAdd(char[],char[],char[]);
int main()
{
register int t,n,i;
//freopen("in.txt","r",stdin);
strcpy(fib[0],"1");
strcpy(fib[1],"2");
strcpy(fib[2],"3");
for(i=3;i<M;i++)
longAdd(fib[i],fib[i-2],fib[i-1]);
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%d",&n);
printf("Scenario #%d:\n%s\n\n",i,fib[n]);
}
return 0;
}
int longAdd(char f[],char f1[],char f2[])
{
int i,a,b,c=0;
for(i=0;f1[i]||f2[i];i++)
{
a=(f1[i])?f1[i]-48:0;
b=(f2[i])?f2[i]-48:0;
f[i]=(a+b+c)%10+48;
c=(a+b+c)/10;
}
if(c)f[i]=c+48;
strRev(f1);
return 0;
}
void strRev(char str[])
{
int i,len=strlen(str),n=len/2;
for(i=0;i<n;i++)
{
str[i]=str[i]^str[len-i-1];
str[len-i-1]=str[i]^str[len-i-1];
str[i]=str[i]^str[len-i-1];
}
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.