c语音程序填空:输入一个正整数n。计算序列2/1+3/2+5/3+8/5+…的前n项之和。该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。 【输入样例】 20 【输出样例】 32.66 【程序代码】 #include <stdio.h> int main(void) { int i, n, a, b, t; 【____________】 res = 0; scanf("%d", &n); a = 2; b = 1; for(i = 1; i <= n; i++) { res =【____________】; t = a; a = a + b; 【____________】 ; } printf("%.2f", res); return 0; }
时间: 2024-01-17 22:04:52 浏览: 26
这是一个比较典型的递推问题,我们可以用循环来实现。下面是代码,把空白处的代码填上即可。
```c
#include <stdio.h>
int main(void) {
int i, n, a, b, t;
float res = 0;
scanf("%d", &n);
a = 2;
b = 1;
for(i = 1; i <= n; i++) {
res += 1.0 * a / b;
t = a;
a = a + b;
b = t;
}
printf("%.2f", res);
return 0;
}
```
这段代码的思路是,先输入n,然后初始化分子a=2,分母b=1。接着用循环计算每一项的值,并累加到res中。最后输出res即为所求。
相关问题
填空完成以下计算 s=1+1/2+1/3+……+1/10 的程序
以下是计算 s=1+1/2+1/3+……+1/10 的程序:
```c
#include <stdio.h>
int main() {
double s = 0.0; // 初始化 s 为 0.0
int i;
for (i = 1; i <= 10; i++) {
s += 1.0 / i; // 累加每一项
}
printf("s = %lf\n", s); // 输出结果
return 0;
}
```
在这个程序中,我们使用了一个 double 类型的变量 s 来存储最终的和,使用了一个 for 循环来遍历每一项并将其累加到 s 中。需要注意的是,这里将 1.0 作为除数,是为了保证除法的精度,从而得到正确的结果。最后,我们使用 printf 函数输出结果。
下列程序的功能是调用函数fun计算表达式1+1/2+1/3+···+1/n的值并输出,结果保留3位小数,不添加任何提示信息,请填空完成程序功能。
```python
def fun(n):
sum =
for i in range(1, n+1):
sum += 1/i
return sum
n = int(input())
result = fun(n)
print("{:.3f}".format(result))
```
程序的功能是调用函数fun计算表达式1+1/2+1/3+···+1/n的值并输出,结果保留3位小数。程序中使用了一个函数fun,该函数接受一个参数n,计算表达式的值并返回结果。主程序中读入n的值,调用函数fun计算结果,并使用格式化字符串输出结果。