前言
在现实中,我们做数学题总会遇到阶乘问题,这在计算机中也不例外。 那我们应该怎么实现呢?
我记得很多老师在电脑上书写阶乘都是用!这个符号表示。 比如5的阶乘,写为5!。 这在C语言中是行不通的,下面我讲解C语言中阶乘的实现。
1.阶乘实现
1.1理论步骤
我们可以利用while、do……while、以及for等循环实现,实现功能如下:
我们先设置好3个变量,i、n(想要的阶层数)、jieceng(阶层结果)
利用循环得到相应阶乘
1.2实践结果
这里用3种循环都展示一下
while实现
#include <stdio.h>
int main()
{
int i = 1;
int n = 0;
int jieceng = 1;
scanf("%d", &n); //输入想得到的阶层数
while (i <= n)
{
jieceng *= i;
i++;
}
printf("%d的阶层是%d\n", n, jieceng);
return 0;
}
do……while实现
#include <stdio.h>
int main()
{
int i = 1;
int n = 0;
int jieceng = 1;
scanf("%d", &n);
do
{
jieceng *= i;
i++;
} while (i <= n);
printf("%d的阶层是%d\n", n, jieceng);
return 0;
}
for实现
#include <stdio.h>
int main()
{
int i = 1;
int n = 0;
int jieceng = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
jieceng *= i;
}
printf("%d的阶层是%d\n", n, jieceng);
return 0;
}
2.连续乘层相加实现
2.1理论步骤
首先明确要连续相加,必然需要2层循环嵌套
2.2实践结果
我这里用2层for循环实现
#include<stdio.h>
int main() //算1~n阶层相加
{
int sum = 0;
int jiecen = 0;
int i = 0;
int j = 0;
int n = 0;
scanf("%d", &n); //设置想要到达的n值
for (j = 1; j <= n; j++)
{
for (i = 1, jiecen =1; i <= j; i++) //重置jieceng,使每次从1开始
{
jiecen = jiecen * i; //里循环得每一相应阶层数
}
sum += jiecen; //阶层之和
}
printf("%d\n", sum);
return 0;
}
一层for循环实现(简洁版)
#include <stdio.h>
int main() //算1~10阶层相加(j简短版)好**
{
int sum = 0;
int jiecen = 1;
int i = 0;
int n = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
jiecen = jiecen * i;
sum += jiecen;
}
printf("%d\n", sum);
return 0;
}
以上就是C语言实现阶乘的示例详解的详细内容,更多关于C语言 阶乘的资料请关注编程网其它相关文章!