P1149 火柴棒等式

2021-07-26 19:40:53 字數 1494 閱讀 2192

給你n根火柴棍,你可以拼出多少個形如「a+b=c」的等式?等式中的a、b、c是用火柴棍拼出的整數(若該數非零,則最高位不能是0)。用火柴棍拼數字0-9的拼法如圖所示:

注意:加號與等號各自需要兩根火柴棍

如果a≠b,則a+b=c與b+a=c視為不同的等式(a、b、c>=0)

n根火柴棍必須全部用上

輸入格式:

輸入檔案matches.in共一行,又乙個整數n(n<=24)。

輸出格式:

輸出檔案matches.out共一行,表示能拼成的不同等式的數目。

輸入樣例#1:

樣例輸入1:

14樣例輸入2:

18

輸出樣例#1:

樣例輸出1:

2樣例輸出2:

9

【輸入輸出樣例1解釋】

2個等式為0+1=1和1+0=1。

【輸入輸出樣例2解釋】

9個等式為:

0+4=4

0+11=11

1+10=11

2+2=4

2+7=9

4+0=4

7+2=9

10+1=11

11+0=11

var a:

array[0.

.9]of longint;

n,i,j,ans:longint;

function try

(n:longint):longint;

begin

try:=0

; repeat

inc(try,a[n mod 10])

;//計算擺完的所有數字要用多少火柴棍

n:=n div 10;

untiln=0

; end;

begin a[

0]:=

6;a[

1]:=

2;//標註擺哪個數字要用多少火柴 a[

2]:=

5;a[

3]:=5;

a[4]:=

4;a[

5]:=5;

a[6]:=

6;a[

7]:=3;

a[8]:=

7;a[

9]:=6;

read(n);

n:=n

-4;//加號等號各需要2根火柴棍

fori:=0

to 1000do

forj:=

0to

1000

doif

(try(i)+try

(j)+try

(i+j)

=n)

then inc

(ans)

;//i=a,j=b,i+j=a+b=c

writeln(ans);

end.

火柴棒等式p 1149

q 給你n根火柴棍,你可以拼出多少個形如 a b c 的等式?等式中的a b c是用火柴棍拼出的整數 若該數非零,則最高位不能是0 用火柴棍拼數字0 9的拼法如圖所示 注意 加號與等號各自需要兩根火柴棍 如果a b,則a b c與b a c視為不同的等式 a b c 0 n根火柴棍必須全部用上 in...

P1149 火柴棒等式

題目提供者ccf noi 評測方式雲端評測標籤noip提高組2008 難度普及 時空限制1000ms 128mb 提交 題解 給你n根火柴棍,你可以拼出多少個形如 a b ca b c 的等式?等式中的aa bb cc是用火柴棍拼出的整數 若該數非零,則最高位不能是00 用火柴棍拼數字0 90 9的...

P1149 火柴棒等式

題目描述 給你n根火柴棍,你可以拼出多少個形如 a b ca b c 的等式?等式中的aa bb cc是用火柴棍拼出的整數 若該數非零,則最高位不能是00 用火柴棍拼數字0 90 9的拼法如圖所示 注意 加號與等號各自需要兩根火柴棍 如果a ba b,則a b ca b c與b a cb a c視為...