习题10-6 递归求Fabonacci数列(10 分)
本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:
$f(n)=f(n−2)+f(n−1) (n\ge2)$,其中$f(0)=0,f(1)=1$。
函数接口定义:
| 1 | int f( int n ); | 
函数f应返回第n个Fabonacci数。题目保证输入输出在长整型范围内。建议用递归实现。
裁判测试程序样例:
| 1 | #include <stdio.h> | 
输入样例:
| 1 | 6 | 
输出样例:
| 1 | 8 | 
本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:
$f(n)=f(n−2)+f(n−1) (n\ge2)$,其中$f(0)=0,f(1)=1$。
| 1 | int f( int n ); | 
函数f应返回第n个Fabonacci数。题目保证输入输出在长整型范围内。建议用递归实现。
| 1 | #include <stdio.h> | 
| 1 | 6 | 
| 1 | 8 | 
本题要求实现Ackermenn函数的计算,其函数定义如下:
$$
\operatorname{ack}(m, n)=\begin{cases}
n+1, &  m = 0  \\\\
\operatorname{ack}(m-1, 1), &  n=0 \& \& m\gt0 \\\\
\operatorname{ack}(m-1, \operatorname{ack}(m, n-1)),& m \gt0 \& \&  n\gt 0
\end{cases}
$$
| 1 | int Ack( int m, int n ); | 
其中m和n是用户传入的非负整数。函数Ack返回Ackermenn函数的相应值。题目保证输入输出都在长整型
范围内。
| 1 | #include <stdio.h> | 
| 1 | 2 3 | 
| 1 | 9 | 
本题要求实现一个函数,计算下列简单交错幂级数的部分和:
$f(x, n)=x-x^{2}+x^{3}-x^{4}+\cdots+(-1)^{n-1} x^{n}$
| 1 | double fn( double x, int n ); | 
其中题目保证传入的n是正整数,并且输入输出都在双精度范围内。函数fn应返回上述级数的部分和。建议尝试用递归实现。
| 1 | #include <stdio.h> | 
| 1 | 0.5 12 | 
| 1 | 0.33 | 
本题要求实现一个计算$x^n(n \geq 1)$的函数。
| 1 | double calc_pow( double x, int n ); | 
函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内。
| 1 | #include <stdio.h> | 
| 1 | 2 3 | 
| 1 | 8 | 
本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 $1 !+2 !+3 !+\ldots+n !$的值。
| 1 | double fact( int n ); | 
函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。
| 1 | #include <stdio.h> | 
| 1 | 10 | 
| 1 | fact(10) = 3628800 | 
| 1 | 0 | 
| 1 | fact(0) = 1 | 
本题要求实现一个用递归计算$1+2+3+\ldots+n$的和的简单函数。
| 1 | int sum( int n ); | 
该函数对于传入的正整数n返回1+2+3+…+n的和;若n不是正整数则返回0。题目保证输入输出在长整型范围内。建议尝试写成递归函数。
| 1 | #include <stdio.h> | 
| 1 | 10 | 
| 1 | 55 | 
| 1 | 0 | 
| 1 | 0 | 
本题要求实现一个用递归计算$1+2+3+\ldots+n$的和的简单函数。
| 1 | int sum( int n ); | 
该函数对于传入的正整数n返回1+2+3+…+n的和;若n不是正整数则返回0。题目保证输入输出在长整型范围内。建议尝试写成递归函数。
| 1 | #include <stdio.h> | 
| 1 | 10 | 
| 1 | 55 | 
| 1 | 0 | 
| 1 | 0 | 
本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。
| 1 | int set_grade( struct student *p, int n ); | 
其中p是指向学生信息的结构体数组的指针,该结构体的定义为:
| 1 | struct student{ | 
n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade函数需要根据学生的成绩score设置其等级grade。等级设置:85-100为A,70-84为B,60-69为C,0-59为D。同时,set_grade还需要返回不及格的人数。
| 1 | #include <stdio.h> | 
| 1 | 10 | 
| 1 | The count for failed (<60): 1 | 
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。
输入第一行给出正整数$n(\lt 10)$。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。
按照年龄从大到小输出朋友的信息,格式同输出。
| 1 | 3 | 
| 1 | wang 19821020 +86-0571-88018448 | 
给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。
输入第一行给出正整数$n(\lt 10)$,随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。
在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。
| 1 | 3 | 
| 1 | 25.00, Programming in Delphi | 
Update your browser to view this website correctly. Update my browser now