HDOJ 1047解題報告

2022-07-29 13:30:12 字數 647 閱讀 1697

練習acm後的第一篇解題報告。

這題是求大數階乘的,題目要求最大能求10000的階乘。

剛一看到這題,感覺思路很簡單,思考了一會之後就開始寫**。思路很簡單,由於是大數乘法,普通的int型別肯定不夠用,要用陣列儲存。然後運算過程就是最簡單的乘法運算過程,乘--》移位--》加 的簡單過程。

提交之後一直是tle,悲劇,百思不得其解。

貼下ac的**:

1 #include2 #include

3int main(void)4

23}24for(i=9999;i>=0;i--) //找到最高位,輸出,輸出的時候注意格式,除了最高位,剩下的要四位一輸出

25if(a[i]!=0)26

break

;27 printf("%d"

,a[i]);

28for(j=i-1;j>=0;j--)

29 printf("

%04d

",a[j]);

30 printf("\n"

);31}32

return0;

33 }

多位一存對大數乘法運算是非常高效。遇到此類題目,要優先考慮多位一存。

POJ 1047 解題報告

傳送門 解題思路 剛看到這題,第乙個思路是迴圈鍊錶 好吧,考研考多了 不想用stl,又懶得自己構造結構體,於是選取了陣列。剛開始,以為是普通乘法運算,寫著寫著才發現是大數乘法,hiahia,水題中的戰鬥機.大數乘法的核心 int cycnum 100 存放大數的地方,注意一點,陣列從低位往高位對應大...

hdoj 1153 解題報告

題目意思 有乙個城鎮,它的所有街道都是單行的,並且每條街道都是和兩個路口相連。同時已知街道不會形成迴路。你的任務是編寫程式求最小數量的傘兵,這些傘兵可以訪問 visit 所有的路口。對於傘兵的起始降落點不做限制。解題思路 這個題轉化成求dag圖的最小路徑覆蓋數 節點數 最大匹配數。其中求最大匹配是關...

乘積最大 TYVJ1047 解題報告

program p1047 var n,m longint s string a array 0.40,0.40 of longint 用a表示從首位到末位的數是什麼,例如數為2314,a 2,3 則表示為31 f array 0.40,0.5 of longint 用f i,j 表示前i位用了j個...