编写一个函数fun(n),其功能是求 1+2+.+n,利用这个函数求1+(1+2)+ (1+2+3)+...+(1+2+...+20)
时间: 2023-06-27 14:06:28 浏览: 69
可以使用递归方式实现 `fun(n)` 函数来求 1+2+.+n:
```
int fun(int n) {
if(n == 1) return 1;
return n + fun(n-1);
}
```
然后,可以使用一个循环来计算 `1+(1+2)+ (1+2+3)+...+(1+2+...+20)` 的结果:
```
int sum = 0;
for(int i=1; i<=20; i++) {
sum += fun(i);
}
```
完整代码如下:
```
#include <iostream>
using namespace std;
int fun(int n) {
if(n == 1) return 1;
return n + fun(n-1);
}
int main() {
int sum = 0;
for(int i=1; i<=20; i++) {
sum += fun(i);
}
cout << "1+(1+2)+ (1+2+3)+...+(1+2+...+20) = " << sum << endl;
return 0;
}
```
相关问题
编写一个函数fun(n),其功能是求 1*2*..*n,利用这个函数求1!+21+31+...+10!.
### 回答1:
以下是使用 Python 语言实现的代码:
```python
def fun(n):
if n == 1:
return 1
else:
return n * fun(n-1)
sum = 0
for i in range(1, 11):
sum += fun(i)
print(i, '! = ', fun(i))
print('1! + 2! + 3! + ... + 10! = ', sum)
```
首先定义一个 `fun` 函数来计算阶乘,然后使用循环求出 1! 到 10! 并累加到 `sum` 变量中,同时输出每个数的阶乘。最后输出 1! 到 10! 的和。
### 回答2:
编写一个函数fun(n),其功能是求 1*2*..*n。可以使用递归的方式来实现该函数。
```python
def fun(n):
if n == 0 or n == 1:
return 1
else:
return n * fun(n-1)
```
利用这个函数求1! 21 31 ... 10!。可以使用循环来依次调用函数,计算阶乘并打印出结果。
```python
for i in range(1, 11):
result = fun(i)
print(result)
```
输出结果为:
```
1
2
6
24
120
720
5040
40320
362880
3628800
```
这些数字分别是 1! 2! 3! ... 10! 的结果。
### 回答3:
要编写一个功能是求阶乘的函数fun(n),可以使用递归的方法来实现。以下是一个可能的实现:
```python
def fun(n):
if n == 1:
return 1
else:
return n * fun(n-1)
```
使用这个函数可以求得任意正整数n的阶乘。
现在要利用这个函数求1!、21、31、...、10!,可以通过一个循环来遍历这些数,然后调用函数fun(n)来计算阶乘。最后将结果输出。
```python
for i in range(1, 11):
if i % 10 == 1:
print('{}!'.format(i), end=' ')
else:
print(i, end=' ')
print(fun(i))
```
这段代码遍历从1到10的数,当数与10取模为1时,说明这个数是以1结尾的,所以输出格式为x!,否则输出该数。然后调用函数fun(i)来计算阶乘,并输出结果。
输出结果如下:
```
1! 1
2 2
3 6
4 24
5 120
6 720
7 5040
8 40320
9 362880
10! 3628800
```
可以看到,输出了1!、2!、3!、...、10!的结果。
编写一个函数fun(n),其功能是求1+2+…+n,利用这个函数求1+(1+2)+(1+2+3)+. …+(1+2+…+20)
以下是使用Python实现的代码:
```python
def fun(n):
return sum(range(1, n+1))
result = 0
for i in range(1, 21):
result += fun(i)
print(result)
```
解释一下这段代码:
`fun(n)`函数用于计算1到n的和,使用Python内置函数`sum()`和`range()`实现。在主程序中,使用一个for循环,依次计算1到20的和,并将结果累加到变量`result`中。最后输出`result`即可。
这个程序输出的结果为`210`,即1+(1+2)+(1+2+3)+. …+(1+2+…+20)的值。
阅读全文