不用函数的方法和用函数的方法分别编程求m!n!/(m-n)!c语言代码
时间: 2024-03-06 08:50:54 浏览: 19
不用函数的方法:
```c
#include <stdio.h>
int main() {
int m, n;
printf("请输入m和n的值:");
scanf("%d%d", &m, &n);
int mn = 1, mn_mn = 1;
for (int i = 1; i <= m; ++i) {
mn *= i;
if (i <= n) {
mn_mn *= i;
}
}
printf("%d\n", mn / mn_mn);
return 0;
}
```
用函数的方法:
```c
#include <stdio.h>
int factorial(int n) {
int result = 1;
for (int i = 1; i <= n; ++i) {
result *= i;
}
return result;
}
int main() {
int m, n;
printf("请输入m和n的值:");
scanf("%d%d", &m, &n);
printf("%d\n", factorial(m) / factorial(n) / factorial(m - n));
return 0;
}
```
相关问题
用函数方法编程求1!+2!+……+n!C语言
以下是用函数方法编程求1!+2!+……+n!的C语言代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n, sum = 0;
printf("请输入n的值:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += factorial(i);
}
printf("%d的阶乘和为:%d\n", n, sum);
return 0;
}
```
用函数递归方法求n!,c语言编程
可以使用以下的C语言代码来实现n的阶乘的递归实现:
```c
#include <stdio.h>
int factorial(int n)
{
if(n == 1 || n == 0) // 递归终止条件
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;
}
```
这段代码中,factorial函数是递归实现的,当n等于1或0时,递归终止,返回1;否则,递归调用factorial函数,计算n * factorial(n-1)的值。在main函数中,读入一个整数n,然后输出n的阶乘。