Computer Transformation
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4842 Accepted Submission(s): 1769 Problem Description
A sequence consisting of one digit, the number 1 is initially written into a computer. At each successive time step, the computer simultaneously tranforms each digit 0 into the sequence 1 0 and each digit 1 into the sequence 0 1. So, after the first time step, the sequence 0 1 is obtained; after the second, the sequence 1 0 0 1, after the third, the sequence 0 1 1 0 1 0 0 1 and so on. How many pairs of consequitive zeroes will appear in the sequence after n steps?
Input
Every input line contains one natural number n (0 < n ≤1000).
Output
For each input n print the number of consecutive zeroes pairs that will appear in the sequence after n steps.
Sample Input
2
3
Sample Output
1
1
做这道题,纯粹是一道大数的题,当然你需要推导出这个公式f[n]=f[n-1]+2*f[n-2];
1 #include2 const int maxn=1000; 3 int arr[maxn+1][305]={ 0}; 4 int len=1; 5 void LargeNum() 6 { 7 arr[1][0]=1; 8 for(int i=2;i<=maxn;i++) 9 {10 int c=0;11 for(int j=0;j 9)15 len++;16 c=arr[i][j]/10;17 arr[i][j]%=10;18 }19 }20 21 }22 int main( void )23 { 24 int n,i;25 LargeNum();26 while(scanf("%d",&n)==1)27 {28 if(n==1)puts("0");29 else30 {31 for(i=len;arr[n-1][i]==0;i--);32 for(int j=i;j>=0;j--)33 printf("%d",arr[n-1][j]);34 puts("");35 }36 }37 return 0;38 }