HDU-1715 피보나치 수 (대수)

피보나치 수열은 다음과 같이 정의됩니다 :
f (1) = f (2) = 1
f (n) = f (n-1) + f (n-2) n> = 3.
n 번째 피보나치 값을 계산합니다.
입력
첫 번째 줄은 정수 N이고 N은 정수 Pi (1 <= Pi <= 1000)입니다.
출력
은 N 행이고 각 행은 f (Pi)에 해당합니다.
샘플 입력
5
1
2
3
4
5
샘플 출력
1
1
2
3
5
문제 해결 아이디어 :
큰 숫자 더하기

#include<stdio.h>
int f[1005][605];
 
int main()
{
    
    
 
	int i,n,t;
		f[1][0] = f[2][0] = 1;
		f[1][1] = f[2][1] = 1;
	int len = 1;
	for (i = 3; i <= 1000; i++)//打表
	{
    
    
		for (int j = 1; j <= len; j++)
		{
    
    
			f[i][j] += f[i - 1][j] + f[i - 2][j];
			if(f[i][j] >= 10)
			{
    
    
				f[i][j + 1]+= f[i][j] / 10;
				f[i][j]%= 10;
			}
		}
		while(f[i][len + 1])
		{
    
    
			len++;
		}
		f[i][0] = len;
	}
	scanf("%d", &t);
	while(t--)
	{
    
    
		scanf("%d", &n);
		for (i = f[n][0]; i >= 1; i--)
		{
    
    
			printf("%d", f[n][i]);
		}
		printf("\n");
	}
 
	return 0;
}

추천

출처blog.csdn.net/weixin_46703995/article/details/113095214