C语言 阶乘
helinliupi-何 人气:0前言
在现实中,我们做数学题总会遇到阶乘问题,这在计算机中也不例外。 那我们应该怎么实现呢?
我记得很多老师在电脑上书写阶乘都是用!这个符号表示。 比如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; }
加载全部内容