当前位置 :
请用编程算法算出200亿当中有多少个带1的数字.例如:1、10、11、21、除了汇编语言外,其他语言皆可.回答的时候麻烦注释下算法概念.
更新时间:2024-04-23 15:32:56
7人问答
问题描述:

请用编程算法算出200亿当中有多少个带1的数字.例如:1、10、11、21、

除了汇编语言外,其他语言皆可.

回答的时候麻烦注释下算法概念.

储彬回答:
  呵呵这更像是个数列组合问题.其实可以反过来说就是有多少个数字不含1.200亿=20000000000那么不含一的数字量为n=2*9*9.=2*9(10次方)这个编程好写吧?呵呵.那么含1的数字就是200亿-n.你可以把200亿看成个数字...
方少军回答:
  你的答案是这个数吗?19*8+40*20000000=800000152
储彬回答:
  。。。。。。你好像还是不明白啊。这个题解的精髓是看懂这个数列组合。。。答案应该是=20000000000-2*9*9*9*9*9*9*9*9*9*9=13026431198你可以把200亿看成个数字串ABCDEFGH...那么首位不是1的话可以为(0或者2,共2种变化)次位(可以为0,2,3,4,5,6,7,8,9,共9种变化),第三位可以为(0,2,3,4,5,6,7,8,9,共9种变化)。。。。。。依次类推。。。那么除了首位是有2个可能后面的位上都是有肯能有9种变化。那么总共就有2*9(9的10次方)个数不含1用200亿减去就得到了
方少军回答:
  是不太明白,现在开始明白你的算法了,但我对你这个数字有疑问,200亿个数字里面居然有130亿多个带1的数字。一到100也不过只有20个,从200开始一直到900,没一百当中只有19个带1的数字。怎么算也不应该有这么多啊?
储彬回答:
  呵呵不需要疑问。算法正确就对了我告诉你为什么有130亿多、因为当首位为1的时候后面不论是什么都是含1的所以当首位为1的时候就有了100亿个了。唉,我挺耐心的吧。呵呵。多给点分吧
方少军回答:
  分给你无所谓,我就是想讨论下。1到100只有20个带1的数字,而从200开始一直到900,每一百只有19个带1的数字,1000又是20个。就是说1千里面有8个192个20,就是192个。1000*2千万就是2亿,1000当中有192个,192*200万应该就是正确数字。可能是我逻辑错误了,你说的不错啊,凡是第一位带1的数字都算。
储彬回答:
  我真服了你了。。建议你好好看我给你说的解释。你的思路是片面的。好好看我下面的文字。如果看不懂和同学一起看下,当你理解后你就会豁然开朗了。你可以把200亿看成个数字串ABCDEFGH...那么首位不是1的话可以为(0或者2,共2种变化)次位(可以为0,2,3,4,5,6,7,8,9,共9种变化),第三位可以为(0,2,3,4,5,6,7,8,9,共9种变化)。。。。。。依次类推。。。那么除了首位是有2个可能后面的位上都是有肯能有9种变化。那么总共就有2*9(9的10次方)个数不含1用200亿减去就得到了关于你的问题。你思考的太片面是从小算大的。也是错误的。你1-1000的算法是正确的但是1000*2千万的算法完全是错误的。反问你,1-100有20个含1的数字,那么1000=100*10是不是应该有10*20个含1的数字啊?
其它推荐
最新更新
热门其它
查询网(q821.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
Copyright©2009-2021 查询网 q821.com 版权所有 闽ICP备19006478号-19