输出[m,n]范围内的所有斐波那契(Fibonacci)数,m,n这两个数由键盘输入。
【提示】
1,1,2,3,5,8,13,21,34,……这是斐波那契(Fibonacci)数列的前几项。斐波那契数列的特点:前两项均为1,后面任意一项都是其前面两项之和。
本实验虽然只要求输出在[m,n]范围内的斐波那契数,但是依然需要从第1个Fibonacci数开始依次得到下一个,并判断是否是需要输出的那个。
不i要用太高深的程序,刚开始学
int f(int n)
{
if (n == 1 || n == 2) return 1;
else return f(n - 2) + f(n - 1);
}
int main()
{
int m, n;
scanf("%d %d", &m, &n);
int i = 1;
while (true)
{
int x = f(i);
if (x >= m && x <=n) printf("%d ", x);
if (x >= n) break;
}
}
#include <stdio.h>
int f(int n)
{
if (n == 1 || n == 2) return 1;
else return f(n - 2) + f(n - 1);
}
int main()
{
int m, n;
scanf("%d %d", &m, &n);
int i = 1;
while (true)
{
int x = f(i++);
if (x >= m && x <=n) printf("%d ", x);
if (x >= n) break;
}
}
#include <stdio.h>
int fib(int num);
main()
{
int m,n,i,k;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
for(i=1;fib(i)<n;i++)
{
if(fib(i)>m)
{
printf("%d ",fib(i));
}
}
}
fib(int num)
{
int a=1,b=2,c,j;
if(num==1)
{
return 1;
}
if(num==2)
{
return 2;
}
else
{
for(j=2;j<=num;j++)
{
a+=b;
c=a;
a=b;
b=c;
}
return b;
}
}
//求第N个斐波那契(Fibonacci)数
int func(int n){
if(n == 1 || n == 2){
return 1;
}else{
return (func(n-2)+func(n-1));//递归,希望你现在理解递归,递归就是函数自己调用自己。
}
}
int main(){
scanf("%d %d",&m,&n);
int i = 1;
int a;
for(i = 1;i <= n+m;i++){//m最小为1,n最小为2,所以i要循环到n+m,这样可以保证最后一个(i最大时候的一个数)斐波那契(Fibonacci)数大于n,也就保证列举了所有在m到n之间的数
a = func(i);//求第i个斐波那契(Fibonacci)数
if(a>=m && a<= n ){
printf("%d\n",a);
}
}
return 0;
}
头文件省略了。
int main()
{
int m = 0,n = 0,i = 0,num = 0;
scanf("%d",&m);
scanf("%d",&n);
if (m >n)
{
m = m + n;
n = m - n;
m = m - n;
}
for (i = 0; i <= n ;)
{
if( i < 2)
{
num = 1;
i++;
}
else
{
i = num + i;
num = i - num;
}
if ( i > m)
{
printf("%d ",num);
}
}
printf("\n");
}
int main()
{
int m = 0,n = 0,i = 0,num = 0;
scanf("%d",&m);
scanf("%d",&n);
if (m >n)
{
m = m + n;
n = m - n;
m = m - n;
}
for (i = 0; i <= n ;)
{
if( i < 2)
{
num = 1;
i++;
}
else
{
i = num + i;
num = i - num;
}
if ( i > m)
{
printf("%d ",num);
}
}
printf("\n");
}
int f(int n)
{
if (n == 1 || n == 2) return 1;
else return f(n - 2) + f(n - 1);
}
int main()
{
int m, n;
scanf("%d %d", &m, &n);
int i = 1;
while (true)
{
int x = f(i);
if (x >= m && x <=n) printf("%d ", x);
if (x >= n) break;
}
}