用迭代和递归分别计算1+2+3+...+100
时间: 2023-11-22 17:45:32 浏览: 65
用迭代和递归分别计算1+2+3+...+100的结果如下:
迭代方法:
```c++
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
printf("%d", sum);
return 0;
}
```
递归方法:
```c++
#include <stdio.h>
int sum(int n) {
if (n == 1) {
return 1;
}
return n + sum(n - 1);
}
int main() {
printf("%d", sum(100));
return 0;
}
```
相关问题
用迭代和递归分别计算1+2+3+...+n
1+2+3+...+n可以使用迭代和递归两种方法计算。
迭代方法是通过循环来实现的,从1到n依次累加求和。
递归方法是通过函数调用自身来实现的,当n等于1时返回1,否则返回n加上递归调用n-1的结果。
下面是两种方法的代码实现:
迭代方法:
```
int iteratively(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
```
递归方法:
```
int recursively(int n) {
if (n == 1) {
return 1;
} else {
return n + recursively(n - 1);
}
}
```
用递归方法计算 S=1+2+...+n
好的,可以使用递归方法来计算 S=1+2+...+n,具体实现如下:
```
int sum(int n) {
if (n == 1) {
return 1;
} else {
return n + sum(n-1);
}
}
```
在上面的代码中,如果 n 等于 1,则直接返回 1;否则,将 n 和 sum(n-1) 相加,得到 S 的值。
需要注意的是,由于递归调用会占用栈空间,因此当 n 较大时,可能会导致栈溢出。因此,对于大规模的计算,建议使用循环等迭代方法。