用C++设计程序:求n!要求:n的值在程序执行时输入,通过函数调用实现求n的阶乘。
时间: 2024-02-22 16:55:42 浏览: 124
以下是使用函数调用实现求 n 的阶乘的 C++ 代码:
```cpp
#include<iostream>
using namespace std;
long long factorial(int n) {
if(n == 0 || n == 1) return 1;
else return n * factorial(n-1);
}
int main() {
int n;
cout << "请输入一个整数n:";
cin >> n;
cout << n << "的阶乘为:" << factorial(n) << endl;
return 0;
}
```
运行结果:
```
请输入一个整数n:10
10的阶乘为:3628800
```
相关问题
C++编程求a!+b!+c!的值。要求编写一个求阶乘的函数fac(n),实现求n!;a,b,c的值在主函数中由用户输入,调用fac函数求出a!,b!,c!,然后求它们的和并在屏幕上输出结果。
在C++中,你可以通过递归或循环的方式编写一个求阶乘的函数`fac`。下面是一个简单的示例,展示了如何实现这个功能:
```cpp
#include <iostream>
// 求阶乘的函数,采用递归实现
unsigned long long fac(int n) {
if (n == 0 || n == 1) // 阶乘的基础情况,0和1的阶乘都是1
return 1;
else
return n * fac(n - 1); // 递归调用计算n-1的阶乘,然后乘以n
}
int main() {
int a, b, c;
std::cout << "请输入三个整数a、b和c: ";
std::cin >> a >> b >> c;
// 调用fac函数并求和
unsigned long long result = fac(a) + fac(b) + fac(c);
std::cout << "a! + b! + c! 的值是: " << result << std::endl;
return 0;
}
```
在这个程序中,用户需要在运行时输入三个整数a、b和c,然后`fac`函数会计算这三个数的阶乘,并将它们相加得到最终的结果。
编弓函数tun(int n),其功能是:求n!的值,并将计算结果以西数返回值形式返回。 在主西数中输入一个正整数n(n<20),调用fun西数求小于等于n的所有能够被3整除的数的阶乘和,例如,输入12,则计算:3!+6!+9!+12!,并将计算结果输出。
以下是该函数的实现:
```c++
#include <iostream>
using namespace std;
int tun(int n) {
if (n == 1 || n == 0) {
return 1;
} else {
return n * tun(n - 1);
}
}
int fun(int n) {
int sum = 0;
for (int i = 3; i <= n; i += 3) {
sum += tun(i);
}
return sum;
}
int main() {
int n;
cout << "请输入正整数n: ";
cin >> n;
int result = fun(n);
cout << "小于等于" << n << "的所有能够被3整除的数的阶乘和为: " << result << endl;
return 0;
}
```
主要思路是先定义一个递归函数 `tun`,用于求阶乘,然后在 `fun` 函数中遍历小于等于 `n` 的所有能够被3整除的数,计算它们的阶乘并相加得到最终结果。在主函数中输入正整数 `n`,调用 `fun` 函数并输出结果。
阅读全文