火 柴
提交檔案:match.exe
輸入檔案:match.in
輸出檔案:match.out
問題描述:
圖1
小明在家無聊時會拿火柴去拼數字,每個數字的拼法如圖1所示。有一天小明突發奇想,想出乙個玩法。他把所有火柴分為a,b,c三堆,然後用光每一堆的火柴各拼出乙個數(用a,b,c的火柴拼出的數分別是a,b,c),這三個數都不能有前導0(0本身除外),再選擇乙個運算子op(+,-,*,/,其中/是整數除),使得a op b = c。因為小明只學過0到999的數,所以只能拼0到999這1000個數。
小明玩著玩著想到,對於火柴堆的一種分法,能得到多少個不同的等式呢?你能回答這個問題嗎?
輸入格式:
輸入只有一行,包含三個整數,分別是a,b,c三堆火柴的火柴數。
輸出格式:
輸出只有一行,包含乙個整數,為所求的等式的個數。
輸入樣例:
輸出樣例:
4 5 8
2
資料範圍:
對於所有的資料,2 ≤ a,b,c ≤ 21。
樣例中兩個等式分別是4 + 71 = 75和11 + 5 = 16。
varh:array[0..9] of byte=(6,2,5,5,4,5,6,3,7,6);//慢慢數火柴棍,打表
a,b,c,n,i,j,ans:longint;
function try(n:longint):longint;//拆數(把x位數拆成x個數)
begin
try:=0;
if n=0 then exit(6);//等於0直接出去(0只能在最後)
while n<>0 do
begin
inc(try,h[n mod 10]);//慢慢拆
n:=n div 10;//被拆就要少了
end;
end;
begin
readln(a,b,c);
for i:=0 to 999 do//直接按題目的上限:999
for j:=0 to 999 do
begin
if (try(i)=a) and (try(j)=b) then//相等時
begin
if (i+j<=999) and (try(i+j)=c) then inc(ans);//如果在資料範圍內,滿足加法等式,等式+1
if (i>=j) and (try(i-j)=c) then inc(ans);//如果在資料範圍內(他頂多會0,不會負數),滿足減法等式,等式+1
if (i*j<=999) and (try(i*j)=c) then inc(ans);//滿足懲罰等式
if (j<>0) and (try(i div j)=c) then inc(ans);//滿足處罰等式(不能被0除)
end;
end;
writeln(ans);
end.
php測試題(一)
題目 生日 1994 8 8 結果 22歲 header content type text html charset utf 8 function diffdate date1,date2 list y1,m1,d1 explode date1 把陣列中的值賦給一些變數 list y2,m2,d2...
黑馬基礎測試題(一)
1 從鍵盤接受乙個數字,列印該數字表示的時間,最大單位到天,例如 鍵盤輸入 6,列印6秒 鍵盤輸入 60,列印1分 鍵盤輸入 66,列印1分 6秒 鍵盤輸入 666,列印11分 6秒 鍵盤輸入 3601 列印1小時1 秒2 編寫乙個函式,函式內輸出乙個字串,並在主函式內呼叫它。3 為什麼需要配置 p...
PHP基礎測試題(一)
1.echo,print printf print r var dump sprintf 區別 echo 是乙個語句,其它的是函式,echo可以輸出多個值,效率高。print 只可以輸出乙個值,print 有返回值 正常輸出返回1 riintf 是乙個格式化輸出 d f s print r 輸出陣列...