|  | 
|  | 
| back to board | faint! I don't think there is anything wrong in my code. WHY I GOT WA??? Program Chernobyl_eagles;var
 a:array[0..1000] of integer;
 n,i,k,v:integer;
 
 Begin
 fillchar(a,sizeof(a),0);
 read(n); a[0]:=1;
 if n=1 then begin writeln(1); halt; end;
 if n=2 then begin writeln(2); halt; end;
 if n=3 then begin writeln(3); halt; end;
 
 if n mod 3=0 then begin n:=n-3; a[1]:=3; end;
 if n mod 3=1 then begin n:=n-4; a[1]:=4; end;
 if n mod 3=2 then begin n:=n-2; a[1]:=2; end;
 
 k:=n div 3;
 for v:=1 to k do
 begin
 for i:=1 to a[0] do a[i]:=a[i]*3;
 for i:=1 to a[0] do if a[i]>9 then
 begin a[i+1]:=a[i+1]+a[i] div 10; a[i]:=a[i] mod 10; end;
 if a[i+1]>0 then a[0]:=i+1;
 end;
 for i:=a[0] downto 1 do write(chr(ord(a[i])+48)); writeln;
 End.
Some tips. Posted by Leo  20 Nov 2002 13:54Tip 1:
 if n=1 then begin writeln(1); halt; end;
 if n=2 then begin writeln(2); halt; end;
 if n=3 then begin writeln(3); halt; end;
 
 is equal to
 
 if (n > 0) and (n < 4) then
 begin
 WriteLn(n);
 exit
 end;
 
 Tip 2:
 
 write(chr(ord(a[i])+48));
 
 is equal to
 
 write(a[i]);
 
 Tip 3:
 
 I think that there is a test with input "0" and output "1".
 Don't ask me why, I don't know.
 | 
 | 
|