c语言 用 for循环语句 编写n的阶乘
不要用数组,用vector来实现相应的功能,我给你写个大概的框架,你向里面添加就好了
#include #include #include // add newusing namespace std;#define N 10 //算N的阶乘int main(){ //数组 1位 1!//int ary[N] = {1, 1};vector ary;ary.resize(N);// 此处的N就可以是非const类型的量// 然后你把ary当成ary[N]数组用就可以了int i, j;for (i = 2; i = 10000){//进位ary[j+1] = ary[j+1] + ary[j] / 10000; //进位后就只留下余数ary[j] = ary[j] % 10000;}}//有进位的话,位数就+1//这里j已经是位数大于1了if (ary[j] >= 1){ary[0]++;}}//倒序输出for (j = ary[0]; j > 0; j--){printf("%d", ary[j]);}printf("
");return 0;}
1、打开visual C++软件,新建任务,鼠标左键点击文件,选择C++ source file:
2、输入代码,首先引入c语言标准库“# include ”,之后在主函数里编写程序,其实n的阶乘就是从1到n的累积,只要编写一个for循环从1一直到n不停的求积就可以了:
3、编写完成后,点击左边的编译按钮 ,编译完成后点击右边的按钮运行程序:
4、运行软件后,Debug里面会生成exe的阶乘可运行程序,打开它这里输入5,按下回车程序就能计算出5的阶乘了,至此就完成了程序的编写:
```c
#include <stdio.h>
int main() {
int n, factorial = 1;
printf("请输入一个整数:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
factorial *= i;
}
printf("%d 的阶乘为:%d
", n, factorial);
return 0;
}
```
代码解释:
1. 在 `main` 函数中定义变量 `n` 和 `factorial`,分别表示用户输入的数和阶乘结果。
2. 通过 `printf` 和 `scanf` 函数获取用户输入的整数。
3. 循环计算 1 至 `n` 之间的数的乘积,即为 `factorial` 的值。
4. 所有数的乘积计算完之后,输出 `factorial` 即可。
运行结果:
```
请输入一个整数:5
5 的阶乘为:120
```
可以看到,这段 C 语言代码输出了 5 的阶乘,结果为 120。
#include <stdio.h>
#include <conio.h>
int main(void)
{
int n,i;
int sum=1;
printf("请输入n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum*i;
}
printf("n!=%d\n",sum);
getch();
return 0;
}
int factorial(int n)
{
int i;
for(i=0;i<n;i++)
n*=(n-1);
return n;
}
这是一个阶乘函数 你要算x的阶乘 只要调用这个函数就行
int sum = 1;
for(int i =1; i <= n; i++){
sum = sum * i;
}