PAT基础编程题 4-10 阶乘计算升级版

来源:互联网 发布:三元表达式 java 编辑:程序博客网 时间:2024/06/10 05:54
#include <stdio.h>void Print_Factorial ( const int N );int main(){    int N;    scanf("%d", &N);    Print_Factorial(N);    return 0;}void Print_Factorial ( const int N) {    int fact[2568] = {0};    fact[0] = 1;    int n = 0, k = 1; // n 为进的数,k 为当前结果的总位数     for (int i=2; i<=N; i++) {        for (int j=0; j<k; j++) {            int temp = i * fact[j] + n;            fact[j] = temp  % 10;            n = temp / 10;             if (n && j==k-1) {                k++;              } // 当有进位且已经处理到最前位时才开拓目标数组的下一位         }    }     for (int i=k-1; i>=0; i--) {        if (N >= 0) {            printf("%d", fact[i]);        } else {            printf("Invalid input");        }    }    printf("\n");}
0 0
原创粉丝点击