先来看题:
斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。
输入格式:
在一行输人一个正整数n(n>=10)。
输出格式:
在一行输出大于n的最小斐波那契数。
输入样例:
在这里给出一组输入。例如:
10
输出样例:
在这里给出相应的输出。例如:
13
思路:从小到大循环判断斐波那契数组中的数,依次判断其是否大于输入值,一旦大于,立即输出。
代码如下:
#include<stdio.h>
int main(){
int a,b;
a=1;
b=1;
int n;
scanf("%d",&n); //输入n,以便于下方判断
while(1){ //进入循环结构
a=a+b;
b=a+b; //完成斐波那契函数的基本框架
if(a>n){
printf("%d",a);break;//用break函数来跳出循环
}else if(b>n){ //通过循环来输出目标值
printf("%d",b);break;
}
}return 0;
}
主要部分在于利用循环结构来构造斐波那契函数,紧接着用if-else语句来输出目标值。
这是很典型的循环结构题解,利用while函数达到循环判断的目的,再用break函数结束循环,输出目标值。