Quantcast
Channel: 《美团2012研发工程师笔试题(数数字问题)》的评论
Browsing all 24 articles
Browse latest View live

作者:fk攻城狮

java解法 int ones = 0; for(int i = 1 ;i <= 1000000 ;i++ ){ ones += String.valueOf(i).replaceAll("[^1]","").length(); } System.out.println(ones);

View Article



作者:fcb_jay

int n = 0; for(int i = 1;i < 1000000;i++){ if(String.valueOf(i).contains("1")) n++; }

View Article

作者:fcb_jay

这个错了 还是楼上两位的对

View Article

作者:gaplee

// @mah0gany C语言解也不见得很复杂。 #include int count_one(unsigned int num) { int cnt = 0; while(num){ if( 1 == num%10 ){ cnt++; } num = num/10; } return cnt; } int main(void) { int i, sum=0; for(i=0;...

View Article

作者:Benn

10^5*6+1

View Article


作者:破晓

分类讨论, 个位的一, 十位的一, …. 以此类推 每当有一个10出现, 就会有一个 个位 的一(1, 11 ,21 …), 每当有一个一百出现就会有10个 十位的 一(10, 11, 12, 13…19) 注意11 的个位一已经计算过。最后算下来都是十分之一的比率, 再加上最后一个一百万的1就是100 0000 * 6/10 + 1。 楼上的算法有点复杂, 一般不好接受

View Article

作者:破晓

不是算法复杂, 是计算量太大。。。

View Article

作者:❁

int sum=0; for (int a=0; a<1000000; a++) { NSString *str=[NSString stringWithFormat:@"%d",a]; for (int a=0; a<str.length; a++) { if ([[NSString stringWithFormat:@"%c", [str characterAtIndex:a]]...

View Article


作者:微笑

var counter = 0; var jStr; var aChar; var num = new Array(); for (var j = 1; j < 1000000; j++) { jStr = j.toString(); for (var i = 0; i < jStr.length; i++) { aChar = jStr.charAt(i);...

View Article


作者:balaaa

php解法 $allcount = 0; for($i=1;$i<=1000000;$i++){ $count = substr_count((string)$i,'1'); $allcount += $count; } echo $allcount;

View Article

作者:天海

方法多种

View Article

作者:王先生

答案为600001个 理由如下: 从数字1-999999,每一个位上1出现的次数都是100000次,由于有六位所以有600000个,再加上1000000中的一个1,所以最后从1-1000000一共有600001个1,用程序的话也可以解出来,但应该这种解法更好,再说了现场哪有编译器哈哈。仅供参考,大家有什么更好的方法的话可以提出来一起交流啊

View Article

作者:王先生

对 用编译器写程序这就成了一道很简单的题了

View Article


作者:风干的眼泪

.net写法,60001个 int count = 0; for (int i = 0; i <= 1000000; i++) { MatchCollection mc = Regex.Matches(i.ToString(),"1"); count = count + mc.Count; }

View Article

作者:王先生

对 各种语言都能写出来

View Article


作者:偏偏遇上你

这个也不对啊,replaceAll方法返回是替换之后的字符串,比如说数字1101,替换之后,得到的是字符0,得到的长度是1,你就只加了一次,但是实际上人家是有三次

View Article

作者:偏偏遇上你

看错了,是把不等于1的替换掉,这样是对的

View Article


作者:Coder_SLM

总觉得这是一道概率题。考虑从000000,000001,000002,…,一直到999999,总共600万个字符。其中每个字符[0,1,...,8,9]都是均匀分布的,出现次数相同。所以1一共出现了600/10=60万次。然后再加上1000000中的1,所以一共出现了600001次。 不知道对否。

View Article

作者:Abstraction

思考问题的角度太赞了

View Article

作者:王先生

对 从概率角度考虑也可以

View Article
Browsing all 24 articles
Browse latest View live




Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC