c语音里用while循环计算阶乘
时间: 2024-10-14 17:17:34 浏览: 27
在C语言中,你可以使用while循环来计算阶乘。阶乘是指一个正整数n的所有小于及等于它的正整数的积,通常表示为n!。下面是一个使用while循环计算阶乘的例子:
```c
#include <stdio.h>
long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况,0和1的阶乘都是1
return 1;
}
long long result = 1; // 初始化结果为1
int i = 2; // 开始从2开始乘
while (i <= n) {
result *= i; // 每次循环将当前值乘到结果上
i++; // 循环变量自增
}
return result;
}
int main() {
int number;
printf("请输入一个非负整数:");
scanf("%d", &number);
if (number >= 0) {
long long fact = factorial(number);
printf("%d 的阶乘是 %lld\n", number, fact);
} else {
printf("输入错误,阶乘只对非负整数有效。\n");
}
return 0;
}
```
相关问题
用while语句实现。输入n的数值,输出n!的值 用c语音
在C语言中,你可以使用while循环结合递归来计算阶乘。下面是一个简单的示例程序,它会提示用户输入一个整数n,并输出它的阶乘:
```c
#include <stdio.h>
long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基础情况,0和1的阶乘都是1
return 1;
} else {
long long result = n; // 初始化结果为当前的n
int i;
while (i > 1) {
result *= i--;
}
return result;
}
}
int main() {
int n;
printf("请输入一个非负整数: ");
scanf("%d", &n);
if (n < 0) {
printf("抱歉,阶乘只对非负整数定义。\n");
} else {
long long fact = factorial(n);
printf("%d 的阶乘是: %lld\n", n, fact);
}
return 0;
}
```
在这个程序中,`factorial`函数通过一个while循环不断将结果乘以从n到1的所有整数,实现了阶乘的计算。然后在主函数`main`中获取用户的输入并调用这个函数。
阅读全文