输入一个正整数n,求n!n!=1*2*3*…*n递归c++
时间: 2023-11-14 21:43:59 浏览: 74
#include <stdio.h>
int factorial(int n) { // 定义递归函数
if (n == 1) { // 递归结束条件
return 1;
} else {
return n * factorial(n-1); // 递归调用
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("%d! = %d\n", n, factorial(n)); // 调用递归函数
return 0;
}
相关问题
用c++回答:输入一个正整数n,求1+2+..+n!并输出。
好的,这个问题可以使用递归方法解决。以下是一个简单的 C 语言程序代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 1) return 1;
return n * factorial(n-1);
}
int main() {
int n, result;
printf("请输入一个正整数 n:");
scanf("%d", &n);
result = factorial(n);
printf("%d 的阶乘是 %d\n", n, result);
return 0;
}
```
在该程序中,我们定义了一个 `factorial` 函数,它可以递归地计算输入整数 `n` 的阶乘,并将结果作为函数值返回。此外,我们在 `main` 函数中读入 `n`,调用 `factorial` 函数计算阶乘并输出结果。
希望这个程序可以解决你的问题!
递归算法按位输出一个正整数N用C++代码书写
好的,以下是在 C++ 中实现递归算法按位输出一个正整数N的代码:
```cpp
#include<iostream>
using namespace std;
void print_digits(int n){
if(n<10){ // 递归终止条件
cout << n << endl;
}
else{
print_digits(n/10); // 递归调用
cout << n%10 << endl;
}
}
int main(){
int n = 12345;
print_digits(n); // 调用递归函数
return 0;
}
```
你可以将一个正整数 N 赋值给变量 `n`,然后调用 `print_digits(n)` 函数,它将按位输出 N 的每个数字,输出结果将会是:
```
1
2
3
4
5
```