練習acm後的第一篇解題報告。
這題是求大數階乘的,題目要求最大能求10000的階乘。
剛一看到這題,感覺思路很簡單,思考了一會之後就開始寫**。思路很簡單,由於是大數乘法,普通的int型別肯定不夠用,要用陣列儲存。然後運算過程就是最簡單的乘法運算過程,乘--》移位--》加 的簡單過程。
提交之後一直是tle,悲劇,百思不得其解。
貼下ac的**:
1 #include2 #include3int 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個...