铭影吧 关注:33贴子:155
  • 3回复贴,共1
program project1;
var a:integer;
function min(a,b:integer):integer;
begin
if a>b then exit(b)
else exit(a);
end;
function eat(x:integer):integer;
var c,d:integer;
begin
if x=1 then exit(2);
c:=1;
d:=0;
while c<x do
begin
c:=c*2;
inc(d);
end;
if c-x=0 then exit(d);
exit(min(eat(c div 2)+eat(x-c div 2),eat(c)+eat(c-x)));
end;
begin
readln(a);
eat(a);
writeln(eat(a));
readln;
end.
输入:47
输出:


1楼2010-10-15 19:02回复
    cm彪悍了。。没仔细看。。
    仔细看了也看不懂。。也就明白个if……then……


    2楼2010-10-15 19:11
    回复
      program project1;
      var a:integer;
      function min(a,b:integer):integer;
      begin
      if a>b then exit(b)
      else exit(a);
      end;
      function eat(x:integer):integer;
      var c,d:integer;
      begin
      if x=1 then exit(2);
      c:=1;
      d:=0;
      while c<x do
      begin
      c:=c*2;
      inc(d);
      end;
      if c-x=0 then exit(d);
      exit(min(eat(c div 2)+eat(x-c div 2),eat(c)+eat(c-x)));
      end;
      begin
      writeln('输入一个数字,输出这个数字能用多少个2运算而成。');
      readln(a);
      eat(a);
      writeln(eat(a));
      readln;
      end.                        


      3楼2010-10-18 18:23
      回复
        program project1;
        var
        i1,i2:Qword;
        begin
        writeln('按回车产生下一个数字');
        writeln('1');
        i1:=1;
        while true do
        begin
        write(i1+i2);
        i1:=i1+i2;
        i2:=i1-i2;
        readln;
        end;
        end.      


        4楼2010-10-18 18:23
        回复