51Nod 1057 N的階乘(數論)

2021-07-09 20:15:58 字數 1323 閱讀 9301



輸入n求n的階乘的準確值。

input

輸入n(1 <= n <= 10000)
output

輸出n的階乘
input示例

5
output示例

120
主要思路手算模擬
學習點:printf("%04d",5);  0005
printf("%-4d",5);  5   (後加三個空格)
自己**:
#include"stdio.h"

#include"stdlib.h"

#define n 1000000

#define mod 10000

int a[n]=;

int a_len=0;

int main()

if(bin) a[++a_len]=bin;

}printf("%d",a[a_len]);

for(k=a_len-1;k>=0;k--)

printf("%04d",a[k]); //注意控制輸出格式

printf("\n");

return 0;

}

大神** (效率略高)

#includeint a[9999]=,n,i,c,len,j; 

int main()

printf("%d",a[--len]);

for(;len;)

printf("%05d", a[--len]);

return 0;

}

大大神**(效率高很多)  自己體會

#include #include #include #include #include #include #include #include#includeusing namespace std;

#define ll long long

#define n 1000005

#define mod 100000000000000

ll ans[10000000];

int main()

if(c!=0)

}printf("%i64d",ans[l]);

for(i=l-1; i>=0; i-=1)

return 0;

}

互相學習,共同進步,如果覺得對你有幫助。

那麼頂一下吧,給我一點鼓勵,謝謝

51Nod 1057 N的階乘(大數乘法)

輸入n求n的階乘的準確值。輸入n 1 n 10000 輸出n的階乘5120這道題如果用常規的模擬乘法可能有一半的測試點超時。我來說一下超時原因 因為20的階乘,就已經達到2432902008176640000了,但是常規演算法中頻繁進製操作其實很耗時,所以將原來的陣列乙個位置只存一位數改為乙個位置存...

1057 N的階乘 數論

1057 n的階乘 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 輸入n求n的階乘的準確值。input 輸入n 1 n 10000 output 輸出n的階乘input示例 5output示例 120 模擬平時int型別對10取餘進製,輸出還需要注意格式,013lld是...

51nod 1057 n的階乘 (壓位優化)

使用壓位進行優化,即一位數存多位數,例如當設定mod 1e8時,一位數可以存8位數 其次,注意尾數0,因為壓位,一位需要輸出8個0,故第乙個數應單獨輸出 這樣優化可以到100ms以內 1 include2 include3 include4 using namespace std 56 define...