用c语言输入一个正整数,使用while语句求n!,n!=1*2*3*…*n
时间: 2024-09-29 11:13:13 浏览: 49
c代码-将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
在C语言中,要使用while语句计算正整数n的阶乘,你可以遵循以下步骤:
首先,声明变量存储当前数和阶乘结果,通常初始化为1。然后,通过while循环条件,当当前数大于1时继续迭代,每次迭代都将当前数乘到阶乘结果上。一旦达到1,跳出循环并返回阶乘值。
这里是相关的C代码实现:
```c
#include <stdio.h>
#include <stdlib.h> // 引入long long防止溢出
long long factorial(int n) {
if (n == 1) {
return 1; // 阶乘的基本情况,1的阶乘是1
}
long long fact = 1;
int current = n;
while (current > 1) { // 当前数大于1时,继续乘
fact *= current;
current--;
}
return fact;
}
int main() {
int num;
printf("Enter a positive integer: ");
scanf("%d", &num); // 输入正整数
if(num < 0) {
printf("Error: Factorial is not defined for negative numbers.\n");
} else {
long long result = factorial(num);
printf("The factorial of %d is: %lld\n", num, result);
}
return 0;
}
```
这个程序会提示用户输入一个正整数,然后计算其阶乘并打印出来。注意,由于阶乘增长非常快,对于较大的数值可能会超过`long`类型的范围,因此我们使用`long long`来存储结果。
阅读全文