• C语言 实现N阶乘


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

  • 相关阅读:
    Java Synchronized的用法
    静态方法中不能new内部类的实体对象
    android ViewGroup事件分发机制
    安卓设备通过USB接口读取UVC摄像头权限问题
    android View事件分发机制结论
    函数指针与指针函数以及typedef
    GeoHash
    快速排序,C语言实现
    字符串的几个算法
    ANSI C与GNU C
  • 原文地址:https://www.cnblogs.com/w413133157/p/1650699.html
Copyright © 2020-2023  润新知