41 部落人乘法
問題描述 :
明明熱愛數學,他的爸爸也有意培養明明對數學的興趣。
一次,為了拓展明明的知識面,爸爸給明明講了乙個原始部落人計算乘法的方法:
據說原始部落人以小石子作為計算工具,並用減半和加倍兩種運算就能求得任何兩個整數的乘積。
其規則是:
左邊不斷除2,寫下商,捨去餘數;
右邊不斷加倍,直到左邊變成1為止。
取結果的方法是:
如果某行左邊是偶數,就劃去整個這一行;
如果某行左邊是奇數,右邊剩下的數相加即可。
例如求13與15的乘積的過程是:
計算過程:
13--------15 :13除以2等於6,捨去餘數1,15乘以2等於30;
6---------30 :6除以2等於3,30乘以2等於60;
3---------60 :3除以2等於1,捨去餘數1,60乘以2等於120;
1---------120 :左邊數字為1,停止計算。
取結果過程:
13--------15 :左邊是奇數,取15;
6---------30 :左邊是偶數,劃去;
3---------60 :取60;
1---------120 :取120;
其結果就是: 13*15=15+60+120=195。
明明對爸爸講的這個故事相當感興趣,也自己動手開始模擬上面的過程計算起來。剛開始的時候,明明感覺這樣計算很有趣,但是時間一長,明明就覺得這樣的計算過程很麻煩。他想讓你幫他寫乙個程式,快速的計算出上述乘法最後相加的式子和結果。
明明的問題可以歸結為:給你兩個整數,使用上面描述的乘法過程,輸出最後的相加的式子。
輸入說明 :
你的程式需要從標準輸入裝置(通常為鍵盤)中讀入多組測試資料。每組測試資料佔一行,其中包含兩個整數a和b(1 <= a, b <= 100)。
輸出說明 :
對每組測試資料,你的程式需要向標準輸出裝置(通常為啟動該程式的終端)依次輸出一組對應的答案。格式參見樣例。
輸入範例 :
13 15
2 4輸出範例 :
1315=15+60+120=195
24=8=8
#include
#include
struct multiply
;int
main()
for(i=
1;i<=a;i++)}
i++; sum=0;
//遍歷結構體陣列
printf
("%d*%d="
,a,b)
;for
(j=0
;j)else
else}}
printf
("%d\n"
,sum);}
return0;
}
2150 部落戰爭
題目鏈結 題目大意 給出一張地圖,乙個軍隊要征戰整個土地。一塊土地只能經過一次,有x的地方不能走,軍隊只會走r c個格仔,只會向下走,問最少需要多少軍隊能夠征戰所有的土地 題解 比較 的dag最小路徑覆蓋,把可行點連邊,搞成二分圖就好了 我的收穫 水啊 include include include...
東華oj 高階題第41題 部落人乘法
41 部落人乘法 問題描述 明明熱愛數學,他的爸爸也有意培養明明對數學的興趣。一次,為了拓展明明的知識面,爸爸給明明講了乙個原始部落人計算乘法的方法 據說原始部落人以小石子作為計算工具,並用減半和加倍兩種運算就能求得任何兩個整數的乘積。其規則是 左邊不斷除2,寫下商,捨去餘數 右邊不斷加倍,直到左邊...
BZOJ P2150 部落戰爭
清明節也不能懈怠 雖然已經打了好久了隔膜了 但是你說不做題目也是不行的啊 今天學了乙個公式 dag的最小路徑覆蓋數 dag圖中的節點數 相應二分圖中的最大匹配數.感覺網上的證明也不太好,yy了一下自己的證明 我的證明是這樣的 先說怎麼做 直接每個dag上的點拆點然後建二分圖,原點和s連,然後拆出的點...