2023年分割槽聯賽普級組之三 二進位制

2021-07-11 01:59:02 字數 1944 閱讀 3392

description

任何乙個正整數都可以用2的冪次方表示。例如: 

137=27+23+20 

同時約定方次用括號來表示,即ab 可表示為a(b)。 

由此可知,137可表示為: 

2(7)+2(3)+2(0) 

進一步:7= 22+2+20 (21用2表示) 

3=2+20 

所以最後137可表示為: 

2(2(2)+2+2(0))+2(2+2(0))+2(0) 

又如: 

1315=210 +28 +25 +2+1 

所以1315最後可表示為: 

2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 

input

正整數(n≤20000)

output

符合約定的n的0,2表示(在表示中不能有空格)

sample input

1315

sample output

2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

解題思路:

用乙個遞迴過程,如果

k=0就結束,把

k變為二進位制,用乙個迴圈從二進位制的長度

downto到0

,如果該位為

0就輸出(『

2)』),遞迴迴圈變數,輸出(『)』)。

程式:
var
n:longint;

procedure dg(k:longint);
var

b:array[0..15]of longint;

i,p:longint;

first:boolean;

begin

if k=0 then begin write(0); exit; end;

p:=-1;

while k>0 do

begin

inc(p);

b[p]:=k mod 2;

k:=k div 2;

end;

first:=true;

for i:=p downto 0 do

begin

if b[i]=1 then

begin

if first then first:=false else write('+');

if i=1 then write(2)

else begin

write('2(');

dg(i);

write(')');

end;

end;

end;

end;

begin
readln(n);
dg(n);
writeln;
end.

版權屬於: 

2023年分割槽聯賽普級組之三 採藥

description 辰辰是個天資聰穎的孩子,他的夢想是成為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了乙個難題。醫師把他帶到乙個到處都是草藥的山洞裡對他說 孩子,這個山洞裡有一些不同的草藥,採每一株都需要一些時間,每一株也有它自身的價值。我會給你一段時間...

2023年分割槽聯賽普級組之三 乘積最大

2000年分割槽聯賽普級組之三 乘積最大 time limit 1000ms memory limit 65536k total submit 222 accepted 146 description 今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅...

2023年分割槽聯賽普級組之三 乘積最大

2000年分割槽聯賽普級組之三 乘積最大 time limit 1000ms memory limit 65536k total submit 229 accepted 153 description 今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅...