统计1~10000000之间只含有数字1和0的数的个数(如1,10,11,等)用pascal rep...统计1~10000000之间只含有数字1和0的数的个数(如11011,等)用pascal rep...

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/31 14:52:10
统计1~10000000之间只含有数字1和0的数的个数(如1,10,11,等)用pascal rep...统计1~10000000之间只含有数字1和0的数的个数(如11011,等)用pascal rep...
xUrVיxTENst9"nbv'864H  AδӇj>kn{qQpԏ/Х ](nӟXV`8)01'%oe"DwB^'`te 1WK[kݞv jϟ^\1YmW651ocάk :-  lrW1'0t^-{>ß \lhtgU X|X?~C!#-=saphLj Ѷ8ƅpH|Q؆͇.=Y\幻קb^9AG Y@)C?aq66X߃]6iA0}`Ë& = GMTKA pYYC] ?-**`p}RBߑ|bl'Ri$cOOtjsUlJ4M]!F:Lj)iL`ٵado RVBo=2`+FE[TSkj1Iew#LF <,99fC3"Wv6}yrND?}6wE7";fZf05#]sNUC|7yk';~_2wR[wWϼWzAkզ#Nl;3VGG켔9bYiVtL;*MJ}N݌}9M !ֲF˼ '8UF@xa\Tx5!!ǒJ%X"Sd$䤘8FRL@1UL"%!:i壸M..q>xE#IKD%JJ"rl#1Z$/

统计1~10000000之间只含有数字1和0的数的个数(如1,10,11,等)用pascal rep...统计1~10000000之间只含有数字1和0的数的个数(如11011,等)用pascal rep...
统计1~10000000之间只含有数字1和0的数的个数(如1,10,11,等)用pascal rep...
统计1~10000000之间只含有数字1和0的数的个数(如11011,等)用pascal rep...

统计1~10000000之间只含有数字1和0的数的个数(如1,10,11,等)用pascal rep...统计1~10000000之间只含有数字1和0的数的个数(如11011,等)用pascal rep...

这题用数学方法,笔算就行.

思路:把10000000看做二进制数,就是128,因此一共有128-1+1=128个


证明:

我们先把前几个只含有数字1和0的数列出来:

 1   10   11   100   101   110   111……

发现了吗?它们正好与前几个二进制数一一对应.因此就很好算了.


推广:

     如果题目是“统计1~10000000之间只含有数字0、1、2的数的个数”,只要将10000000当做三进制数就行了!


验证:

   我们用一个枚举算法来写程序.


var s:string;

    i,j,sum:longint;

    flag:boolean;


begin

 for i:=1 to 10000000 do

 begin

  flag:=true;

  str(i,s);

  for j:=1 to length(s) do

   if (s[j]<>'0') and (s[j]<>'1') then 

   begin 

    flag:=false;

    break;

   end;

  if flag then 

  begin

    inc(sum);

    writeln(s);

  end;

 end;

 writeln('sum=',sum);

 readln;

end.


自己运行一下吧.

结果如下(有一些显示不下)