Fibonacci序列0,1,1,2,3,5,8,13,21,…,其中每个元素是前两个元素之和。可递归定义为: 请设计一个计算fib(n
Fibonacci序列0,1,1,2,3,5,8,13,21,…,其中每个元素是前两个元素之和。可递归定义为:
请设计一个计算fib(n)的递归函数,并利用栈将递归算法改写成一个非递归函数。
Fibonacci序列0,1,1,2,3,5,8,13,21,…,其中每个元素是前两个元素之和。可递归定义为:
请设计一个计算fib(n)的递归函数,并利用栈将递归算法改写成一个非递归函数。
求菲波那契数列的数学表达式为 fibonacci(n)=n, n=0,1; fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), n≥2; 设m是long型变量,下面是递归算法求菲波那契数列的方法 long fibonacci(long n) { if(n= =0| |n= =1)return n; else return (fibonacci(n-1)+fibonacci(n-2)); } 当语句m=fibonacci(3),执行时,方法fibonacci()被调用了【 】次。
斐波那契(Fibonacci)数列的构成规律是:数列的第1、2个数是1,从第3个数起,每个数是其前面两个数之和。据此,下面有求斐波那契前12项值的过程,请完善程序。 Sub Fibonacci(N As Integer,s1) s1=0 f1=1 【 】 For i=1 To N/2 Print f1;f2; s1=f1+f2 f1=f1+f2 f2=【 】 Next i Print End Sub Private Sub Command1_Click() Dim sum As Integer Call Fibonacci(12,sum) Print "Sum=";sum End Sub
循环控制
1.实验目的
①熟悉掌握用while语句,do-while语句和for语句实现循环的方法。
②掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
③进一步学习调试程序。
2.实验内容
编程序并上机调试运行。
①逐个检查1到200的所有整数,求1到200之间的完全平方数。
②判断一个整数是否为素数。
③由标准输入读一行字符,输出各个字符的编码。
④统计由标准输入得到的文件中字符的个数。
⑤统计输入数据的个数,找出其中的最小值和最大值。
⑥分别统计输入文件中的空格、行、数字、花括号以及其他所有字符的个数。
⑦打印Fibonacci序列前30个数。
⑧填出下列程序的运行结果。
main()
{int k=0;char c='A';
do
{ switch(c++)
{case'A':k++;break;
case'B':k--;
case'c':k+=2; break;
case'D':k=k%2; contlnue;
case'E':k=k*10;break;
default:k=k/3;
}
k++;
}
while(c<'G');
prinff("k=%d\n",k);
}
⑨若运行以下程序时,从键盘输入3.6 2.4<CR> (<CR>表示回车),写出程序的运行结果。
#include<math.h>
main()
(float x,y,z;
scanf("%f%f",&x,&y);
z=x/y
while(1)
{if(fabs(z)>1.0) {x=y;y=z:z=x/y:}
else break;
}
printf("%f\n",y);
}
⑩编写程序,从键盘输入6名学生的5门成绩,分别求出每个学生的平均成绩,并依次输出。
编程求1!+2!+3!+4!+……………+19!+20!。
找出1000之内的所有完数。
输出9*9口诀。
打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,冈为153=13+53+33。
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,只剩下一个桃子了。求猴子第一天共摘了多少个桃子。
要求编写程序使得在屏幕上输出如下图形。