/*此題關(guān)鍵部分在于進(jìn)位的處理,以及結(jié)果的輸出。重點(diǎn)留意code的第15-18行 21-23行 */ #include<stdio.h>#include<string.h>int main(){ int R[3000];//儲(chǔ)存結(jié)果的數(shù)組 int n,i,j; int num; memset(R,0,sizeof(R));//先將結(jié)果數(shù)組全部賦值為0 scanf("%d",&n); R[0]=1;//第一位表示個(gè)位 num=1;//表示當(dāng)前保存結(jié)果的數(shù)組中有效的位數(shù) for(i=2;i<=n;i++){ int c=0;//c表示進(jìn)位,初始化為0 for(j=0;j<3000;j++){ int s=R[j]*i+c;//s暫時(shí)儲(chǔ)存結(jié)果,由進(jìn)位和當(dāng)前位乘積相加得到 R[j]=s%10;//去除十位數(shù)字,保留個(gè)位數(shù)字 c=s/10;//求進(jìn)位 } } for(i=2999;i>=0;i--) if(R[i]) break;//去除結(jié)果數(shù)組前面無效的0部分 for(j=i;j>=0;j--) PRintf("%d",R[j]);//由高到低輸出結(jié)果 printf("/n"); return 0;}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注