统计1~10000000之间只含有数字1和0的数的个数(如1,10,11,等)用pascal rep...统计1~10000000之间只含有数字1和0的数的个数(如11011,等)用pascal rep...
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/20 02:07:53
![统计1~10000000之间只含有数字1和0的数的个数(如1,10,11,等)用pascal rep...统计1~10000000之间只含有数字1和0的数的个数(如11011,等)用pascal rep...](/uploads/image/z/1602582-6-2.jpg?t=%E7%BB%9F%E8%AE%A11%EF%BD%9E10000000%E4%B9%8B%E9%97%B4%E5%8F%AA%E5%90%AB%E6%9C%89%E6%95%B0%E5%AD%971%E5%92%8C0%E7%9A%84%E6%95%B0%E7%9A%84%E4%B8%AA%E6%95%B0%EF%BC%88%E5%A6%821%2C10%2C11%2C%E7%AD%89%EF%BC%89%E7%94%A8pascal%E3%80%80rep%EF%BC%8E%EF%BC%8E%EF%BC%8E%E7%BB%9F%E8%AE%A11%EF%BD%9E10000000%E4%B9%8B%E9%97%B4%E5%8F%AA%E5%90%AB%E6%9C%89%E6%95%B0%E5%AD%971%E5%92%8C0%E7%9A%84%E6%95%B0%E7%9A%84%E4%B8%AA%E6%95%B0%EF%BC%88%E5%A6%8211011%2C%E7%AD%89%EF%BC%89%E7%94%A8pascal%E3%80%80rep%EF%BC%8E%EF%BC%8E%EF%BC%8E)
统计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.
自己运行一下吧.
结果如下(有一些显示不下)