ZZULIOJ 1091: 童年生活二三事(多实例测试)详细讲解(c语言)

1091: 童年生活二三事(多实例测试)

ZZULIOJ 1091: 童年生活二三事(多实例测试)详细讲解(c语言)_第1张图片
刚开始的思路是 i 代表一下子上二阶的次数, j 代表 一次一阶
(j = n -2*i)
所以:
N=1 有一种;
N=2 有两种;
N=3 有三种;
ZZULIOJ 1091: 童年生活二三事(多实例测试)详细讲解(c语言)_第2张图片
当N=4时: (一共有五种)
ZZULIOJ 1091: 童年生活二三事(多实例测试)详细讲解(c语言)_第3张图片
当N=5时 (一共有8种)
ZZULIOJ 1091: 童年生活二三事(多实例测试)详细讲解(c语言)_第4张图片
当N=6时,(一共有13种)
ZZULIOJ 1091: 童年生活二三事(多实例测试)详细讲解(c语言)_第5张图片
当N=7时,(一共有21种)
ZZULIOJ 1091: 童年生活二三事(多实例测试)详细讲解(c语言)_第6张图片

所以:你有没有发现 !!!
1 2 3 5 8 13 21(斐波那契数列啊!)

官网给出的答案更能说明,最后的步数是符合 斐波那契数列的…
ZZULIOJ 1091: 童年生活二三事(多实例测试)详细讲解(c语言)_第7张图片

#include
#include
int main(){
	int n ;
	while(scanf("%d",&n)!=EOF){
		if(n ==0){
			return 0;
		}else{
			int n1 = 1;
			int n2 = 1;
			int count = 1;
			if(n==1){
				printf("1");
				printf("\n");
			}else{
					int n3 = 0;
					while(count

你可能感兴趣的:(1091,ZZULIOJ,C语言)