实验10-8 递归计算P函数(15 分)

实验10-8 递归计算P函数(15 分)

$$
ack(m,n)=\begin{cases}
1 & (n=0) \\\\
x & (n=1)\\\\
\frac{(2n-1)P(n-1,x)-(n-1)P(n-2,x)}{n} & (n>1)
\end{cases}
$$

函数接口定义:

1
double P( int n, double x );

其中n是用户传入的非负整数,x是双精度浮点数。函数P返回P(n,x)函数的相应值。题目保证输入输出都在双精度范围内。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

double P( int n, double x );

int main()
{
int n;
double x;

scanf("%d %lf", &n, &x);
printf("%.2f\n", P(n,x));

return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

1
10 1.7

输出样例:

1
3.05

实验10-7 递归求Fabonacci数列(10 分)

实验10-7 递归求Fabonacci数列(10 分)

本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:

$f(n)=f(n−2)+f(n−1) (n≥2)$,其中$f(0)=0,f(1)=1$。

函数接口定义:

1
int f( int n );

函数f应返回第n个Fabonacci数。题目保证输入输出在长整型范围内。建议用递归实现。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>

int f( int n );

int main()
{
int n;

scanf("%d", &n);
printf("%d\n", f(n));

return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

1
6

输出样例:

1
8

实验10-6 递归计算Ackermenn函数(15 分)

实验10-6 递归计算Ackermenn函数(15 分)

本题要求实现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 );

其中mn是用户传入的非负整数。函数Ack返回Ackermenn函数的相应值。题目保证输入输出都在长整型

范围内。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>

int Ack( int m, int n );

int main()
{
int m, n;

scanf("%d %d", &m, &n);
printf("%d\n", Ack(m, n));

return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

1
2 3

输出样例:

1
9

实验10-5 递归求简单交错幂级数的部分和(15 分)

实验10-5 递归求简单交错幂级数的部分和(15 分)

本题要求实现一个函数,计算下列简单交错幂级数的部分和:

$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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

double fn( double x, int n );

int main()
{
double x;
int n;

scanf("%lf %d", &x, &n);
printf("%.2f\n", fn(x,n));

return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

1
0.5 12

输出样例:

1
0.33

实验10-4 递归实现指数函数(15 分)

实验10-4 递归实现指数函数(15 分)

本题要求实现一个计算$x^n(n\geq1)$的函数。

函数接口定义:

1
double calc_pow( double x, int n );

函数calc_pow应返回xn次幂的值。建议用递归实现。题目保证结果在双精度范围内。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

double calc_pow( double x, int n );

int main()
{
double x;
int n;

scanf("%lf %d", &x, &n);
printf("%.0f\n", calc_pow(x, n));

return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

1
2 3

输出样例:

1
8

实验10-3 递归求阶乘和(15 分)

实验10-3 递归求阶乘和(15 分)

本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 $1!+2!+3!+\cdots+n! $的值。

函数接口定义:

1
2
double fact( int n );
double factsum( int n );

函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>

double fact( int n );
double factsum( int n );

int main()
{
int n;

scanf("%d",&n);
printf("fact(%d) = %.0f\n", n, fact(n));
printf("sum = %.0f\n", factsum(n));

return 0;
}

/* 你的代码将被嵌在这里 */

输入样例1:

1
10

输出样例1:

1
2
fact(10) = 3628800
sum = 4037913

输入样例2:

1
0

输出样例2:

1
2
fact(0) = 1
sum = 0

实验10-2 判断满足条件的三位数(15 分)

实验10-2 判断满足条件的三位数(15 分)

本题要求实现一个函数,统计给定区间内的三位数中有两位数字相同的完全平方数(如144、676)的个数。

函数接口定义:

1
int search( int n );

其中传入的参数int n是一个三位数的正整数(最高位数字非0)。函数search返回[101, n]区间内所有满足条件的数的个数。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <math.h>

int search( int n );

int main()
{
int number;

scanf("%d",&number);
printf("count=%d\n",search(number));

return 0;
}


/* 你的代码将被嵌在这里 */

输入样例:

1
500

输出样例:

1
count=6

实验10-1 圆形体体积计算器(20 分)

实验10-1 圆形体体积计算器(20 分)

本题要求实现一个常用圆形体体积的计算器。计算公式如下:

  • 球体体积 $V= \frac{4}{3} \pi r^3$,其中r是球体半径。
  • 圆柱体体积$ V=πr^2h$,其中r是底圆半径,h是高。
  • 圆锥体体积$ V=\frac{1}{3} \pi r^2h$,其中r是底圆半径,h是高。

输入格式:

在每次计算之前,要求输出如下界面:

1
2
3
4
5
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:

然后从标准输入读进一个整数指令。

输出格式:

如果读入的指令是1或2或3,则执行相应的体积计算;如果是其他整数,则程序结束运行。

  • 当输入为1时,在计算球体体积之前,打印Please enter the radius:,然后读入球体半径,完成计算;
  • 当输入为2时,在计算圆柱体体积之前,打印Please enter the radius and the height:,然后读入底圆半径和高,完成计算;
  • 当输入为3时,在计算圆锥体体积之前,打印Please enter the radius and the height:,然后读入底圆半径和高,完成计算。

计算结果在一行内输出,保留小数点后两位。

输入样例:

1
2
3
4
5
1
2
3
2.4 3
0

输出样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:
Please enter the radius:
33.51
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:
Please enter the radius and the height:
18.10
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:

实验9-10 平面向量加法(15 分)

实验9-10 平面向量加法(15 分)

本题要求编写程序,计算两个二维平面向量的和向量。

输入格式:

输入在一行中按照“$x_1\quad y_1 \quad x_2\quad y_2$”的格式给出两个二维平面向量$v_1=(x_1, y_1)$和$v_2=(x_2, y_2)$的分量。

输出格式:

在一行中按照$(x, y)$的格式输出和向量,坐标输出小数点后一位(注意不能输出−0.0)。

输入样例:

1
3.5 -2.7 -13.9 8.7

输出样例:

1
(-10.4, 6.0)

实验9-9 有理数比较(10 分)

实验9-9 有理数比较(10 分)

本题要求编写程序,比较两个有理数的大小。

输入格式:

输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。

输出格式:

在一行中按照“a1/b1 关系符 a2/b2”的格式输出两个有理数的关系。其中“>”表示“大于”,“<”表示“小于”,“=”表示“等于”。

输入样例1:

1
1/2 3/4

输出样例1:

1
1/2 < 3/4

输入样例2:

1
6/8 3/4

输出样例2:

1
6/8 = 3/4
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×