#include <stdio.h>
int main(void){
	int a[54]={1,2,3,4},n,i;
	for(i=4;i<54;i++)
		a[i]=a[i-1]+a[i-3];
	scanf("%d",&n);
	while(n!=0){
		printf("%d\n",a[n-1]);
		scanf("%d",&n);
	}
	return 0;
}
点赞(201)
 

0.0分

7 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 26 条评论

古剑灵 5年前 回复TA
NB!!!
pingfan443 5年前 回复TA
我看了你的代码,虽然能够通过这道题  但是题意错了。你和样例的 输入 输出不一样  但是能通过  真是个bug!
是个旺仔 5年前 回复TA
牛逼
三江楚 5年前 回复TA
nb
逻辑幻象 5年前 回复TA
#include<stdio.h>
void sum(int n){
	int k,su=0;
	for(k=1;k<=n-3;k++){
		su=su+k;
	}
	su=su+3;
	printf("%d\n",su);
}
int main(){
	int n,a[1000];
	int i=0;
	while(i<1000){
		scanf("%d",&n);
		a[i]=n;
		if(a[i]==0){
			break;
		}
		i=i+1;
	}
	int k;
	for(k=0;k<i;k++){
		if(a[k]<=4){
			printf("%d\n",a[k]);
		}
		else{
			sum(a[k]);
		}
	}	
	return 0;	
}
说我错了一半   什么情况?(摊手)
通天猴 5年前 回复TA
语文理解出问题了
goldchou 5年前 回复TA
@小小羿 这个想法赞的不行
萌新小萌新 5年前 回复TA
你的答案太精辟了,应该是优质题解啊
天下 6年前 回复TA
重在总结