亲宝软件园·资讯

展开

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;
}

加载全部内容

相关教程
猜你喜欢
用户评论