C语言输入一个正整数n求n!
时间: 2024-10-12 18:09:45 浏览: 7
在C语言中,要求解一个正整数n的阶乘(n!),你可以使用循环结构来计算。阶乘是所有小于及等于n的正整数相乘的结果。以下是一个简单的函数示例:
```c
#include <stdio.h>
// 函数声明,返回值类型是long long,因为n!可能会非常大
long long factorial(int n);
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
if (n >= 0) { // 检查输入是否为非负整数
long long result = factorial(n);
printf("n! = %lld\n", result);
} else {
printf("输入错误,只接受正整数。\n");
}
return 0;
}
// 计算阶乘的函数
long long factorial(int n) {
long long fact = 1; // 初始化阶乘为1
for (int i = 1; i <= n; i++) {
fact *= i; // 将当前数乘到结果上
}
return fact;
}
```
在这个程序中,用户输入一个正整数`n`,然后调用`factorial`函数计算并打印其阶乘。
相关问题
c语言输入一个正整数n,n<=20;求n的阶层! 2、输入两个正整数m,n;求m的n次方
1. 求n的阶乘
```c
#include <stdio.h>
int main() {
int n, result = 1;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
result *= i;
}
printf("%d的阶乘为:%d", n, result);
return 0;
}
```
2. 求m的n次方
```c
#include <stdio.h>
int main() {
int m, n, result = 1;
printf("请输入两个正整数m和n:");
scanf("%d %d", &m, &n);
for (int i = 1; i <= n; i++) {
result *= m;
}
printf("%d的%d次方为:%d", m, n, result);
return 0;
}
```
c语言输入一个正整数n求1+1/3+1/5+…
1/(2n-1)的和
```c
#include<stdio.h>
int main()
{
int n;
float sum=0;
printf("请输入正整数n: ");
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
sum=sum+1.0/(2*i-1);
}
printf("1 1/3 1/5 … 1/(2n-1) 的和为:%f\n",sum);
return 0;
}
```