C语言编写递归函数,输出1到100的所有偶数
时间: 2024-06-14 16:03:41 浏览: 13
以下是使用C语言编写递归函数输出1到100的所有偶数的示例代码:
```c
#include <stdio.h>
void printEvenNumbers(int n) {
if (n <= 100) {
if (n % 2 == 0) {
printf("%d\n", n);
}
printEvenNumbers(n + 1);
}
}
int main() {
printEvenNumbers(1);
return 0;
}
```
这段代码定义了一个递归函数`printEvenNumbers`,它接受一个参数`n`表示当前要输出的数字。在函数内部,首先判断`n`是否小于等于100,如果是,则判断`n`是否为偶数,如果是,则输出`n`。然后递归调用`printEvenNumbers`函数,将`n`加1作为参数传入,继续输出下一个数字。当`n`大于100时,递归结束。
你可以将以上代码保存为一个以`.c`为后缀的文件,然后使用C语言编译器进行编译和运行,即可输出1到100的所有偶数。
相关问题
C语言 自定义递归函数现求1到n的偶数合
好的,我可以为您提供一个自定义递归函数来求1到n之间的偶数和。
代码如下:
```c
#include <stdio.h>
int sumOfEven(int n) {
if (n == 0) {
return 0;
} else {
int sum = sumOfEven(n-1);
if (n % 2 == 0) {
return sum + n;
} else {
return sum;
}
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
int sum = sumOfEven(n);
printf("1到%d之间的偶数和为:%d\n", n, sum);
return 0;
}
```
这个函数名叫`sumOfEven`,它的参数是一个整数`n`,表示要求1到n之间的偶数和。如果n为0,那么直接返回0;否则,递归调用`sumOfEven(n-1)`,并将返回值保存在变量`sum`中。接着,判断n是否为偶数,如果是偶数则返回`sum+n`,否则只返回`sum`。
在主函数中,先读入一个正整数n,然后调用`sumOfEven(n)`函数求1到n之间的偶数和,并输出结果。
希望这个代码对您有所帮助!
用C语言编写递归函数求x的n次方, 并调用此函数求2的5次方。
以下是用C语言编写递归函数求x的n次方的代码:
```c
#include <stdio.h>
double power(double x, int n) {
if (n == 0) {
return 1;
} else if (n % 2 == 0) {
double y = power(x, n / 2);
return y * y;
} else {
double y = power(x, (n - 1) / 2);
return x * y * y;
}
}
int main() {
double result = power(2, 5);
printf("2的5次方等于%.0f\n", result);
return 0;
}
```
在这个递归函数中,如果n等于0,返回1;如果n是偶数,返回x的n/2次方的平方;如果n是奇数,返回x乘以x的(n-1)/2次方的平方。这个函数的时间复杂度是O(log n),因为每次递归都将n减半,所以最多需要递归log n次。
在main函数中,我们调用了power函数,求2的5次方,得到结果32。