C语言 实现N阶乘的程序代码

所属分类: 软件编程 / C 语言 阅读数: 111
收藏 0 赞 0 分享
代码如下所示:
复制代码 代码如下:

#include <stdio.h>
#include <stdlib.h>
#define N 10 //算N的阶乘
int main()
{       //数组   1位 1!
    int ary[N] = {1, 1};
    int i, j;
    for (i = 2; i <= N; i++)
    {
        //各个下标的阶乘,第0位下标是位数,所以从第1位开始
        for (j = 1; j <= ary[0]; j++)
        {
            ary[j] = ary[j] * i;
        }
        //处理进位问题 1W就进一位
        for (j = 1; j <= ary[0]; j++)
        {
            if (ary[j] >= 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("\r\n");
    return 0;
}
更多精彩内容其他人还在看

从汇编看c++中变量类型的深入分析

本篇文章是对c++中的变量类型进行了详细的分析介绍。需要的朋友参考下
收藏 0 赞 0 分享

从汇编看c++的默认析构函数的使用详解

本篇文章是对c++中默认析构函数的使用进行了详细的分析介绍。需要的朋友参考下
收藏 0 赞 0 分享

基于c++中的默认拷贝函数的使用详解

本篇文章对c++中默认拷贝函数的使用进行了详细的分析介绍。需要的朋友参考下
收藏 0 赞 0 分享

解析c++中的默认operator=操作的详解

本篇文章是对c++中的默认operator=操作的应用进行了详细的分析介绍。需要的朋友参考下
收藏 0 赞 0 分享

解析c++中参数对象与局部对象的析构顺序的详解

本篇文章是对c++中参数对象与局部对象的析构顺序进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

深入c++中临时对象的析构时机的详解

本篇文章对c++中临时对象的析构时机进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

解析内存对齐 Data alignment: Straighten up and fly right的详解

对于所有直接操作内存的程序员来说,数据对齐都是很重要的问题.数据对齐对你的程序的表现甚至能否正常运行都会产生影响
收藏 0 赞 0 分享

深入内存对齐的详解

本篇文章是对内存对齐进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

深入C语言把文件读入字符串以及将字符串写入文件的解决方法

本篇文章是对C语言把文件读入字符串以及将字符串写入文件的方法进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

深入Windows下的回车是回车换行(\r\n)还是换行回车(\n\r)的详解

本篇文章对Windows下的回车是回车换行(\r\n)还是换行回车(\n\r)进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享
查看更多