您好,登錄后才能下訂單哦!
下面鏈接是java的實現,思路叫清晰點
https://blog.51cto.com/6631065/2044441
#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) { #define MAX 5000 int a[MAX]= {0},tmpA[MAX]= {0},b[4]= {0}; int k,i,flag,j,temp,bit,l; int f1=0,f2=0,f3=0; /* 如果小于0大于1000直接返回輸入錯誤*/ if(N <0 || N >1000) { printf("Invalid input\n"); return; } /*等于0輸出1*/ else if(N == 0) { printf("%d\n",1); return ; } /*大于0小于1000*/ else { /*將數組a的第一位賦值為1,其余賦值為零*/ a[0] =1; for(i=1; i<=N; i++) { b[0]=b[1]=b[2]=b[3]=0; flag =i; /*將N的各位數進行分解,放入數組b中*/ k=0; while(flag > 0 && k<4) { b[k] = flag %10; flag = flag /10; k++; } temp =0; bit =0; for(j=0; j<4; j++) { /*使用tmpA存儲的數值與b數組相乘,結果存到a數組中*/ for(l=0; l<MAX; l++) { temp = a[l] *b[j]; tmpA[l+j]+= temp; } } for(k=0; k<MAX-1; k++) { if(tmpA[k]>=10) { temp = tmpA[k]; tmpA[k] = tmpA[k] %10; tmpA[k+1] = tmpA[k+1]+temp/10; } } for(k=0; k<MAX; k++) { a[k] = tmpA[k]; tmpA[k] =0; } } } printf("\n"); f3=0; for(k=MAX-1; k>=0; k--) { if(a[k] >0) f3=1; if(f3>0)printf("%d",a[k]); } }
下面鏈接是java的實現,思路叫清晰點
https://blog.51cto.com/6631065/2044441
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。