Hduoj1041【數學】

/*Computer Transformation
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6626    Accepted Submission(s): 2408


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
 

Source
Southeastern Europe 2005 

Recommend
JGShining   |   We have carefully selected several similar problems for you:  1006 1143 1200 1063 1046 
*/
#include<stdio.h>
#include<string.h>
int g[301], f[301];//g[i]表示第i步所擁有的1的個數,f[i]表示第i步所擁有的0的對數 
//第1000個數接近300位 
int main()
{
	
	int n;
	while(scanf("%d", &n) != EOF)
	{
		memset(f, 0, sizeof(f));
		memset(g, 0, sizeof(g));
		f[0] = 0;//the first
		g[0] = 1;//the second
		if(n == 1 || n == 2)
		{
			printf("%d\n", n-1);
			continue;
		}
		for(int i = 3; i <= n; ++i)
		{
			int temp;
			for(int j = 0; j < 301; ++j)//f*2
			{
				f[j] *= 2;
				temp = f[j] + g[j];
				f[j] = g[j];
				g[j] = temp;
			}
			for(int j = 0; j < 301; ++j)
			{
				if(g[j] > 9)
				{
					g[j+1] += g[j]/10;
					g[j] %= 10;
				}
			}
		}
		for(int i = 301; i >= 0; --i)
		{
			if(g[i] != 0)
			{
				for(int j = i; j >= 0; --j)
				printf("%d", g[j]);
				printf("\n");
				break; 
			}
		}
	}
	return 0;
}

題意:給出一個數1,每進行一次操作,數列中的1會變成01, 而0會變成10,求經過n步操作後,數列中00的對數。

思路:這個是個規律題,通過推敲可以發現f【i】 = f【i-1】 + f【i-2】*2,然後就是大數相加,其次要把握好第1000個數的長度是300,控制相加的上限,避免超時。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章