作者: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作者: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作者:破晓
分类讨论, 个位的一, 十位的一, …. 以此类推 每当有一个10出现, 就会有一个 个位 的一(1, 11 ,21 …), 每当有一个一百出现就会有10个 十位的 一(10, 11, 12, 13…19) 注意11 的个位一已经计算过。最后算下来都是十分之一的比率, 再加上最后一个一百万的1就是100 0000 * 6/10 + 1。 楼上的算法有点复杂, 一般不好接受
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作者:王先生
答案为600001个 理由如下: 从数字1-999999,每一个位上1出现的次数都是100000次,由于有六位所以有600000个,再加上1000000中的一个1,所以最后从1-1000000一共有600001个1,用程序的话也可以解出来,但应该这种解法更好,再说了现场哪有编译器哈哈。仅供参考,大家有什么更好的方法的话可以提出来一起交流啊
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作者:偏偏遇上你
这个也不对啊,replaceAll方法返回是替换之后的字符串,比如说数字1101,替换之后,得到的是字符0,得到的长度是1,你就只加了一次,但是实际上人家是有三次
View Article作者:Coder_SLM
总觉得这是一道概率题。考虑从000000,000001,000002,…,一直到999999,总共600万个字符。其中每个字符[0,1,...,8,9]都是均匀分布的,出现次数相同。所以1一共出现了600/10=60万次。然后再加上1000000中的1,所以一共出现了600001次。 不知道对否。
View Article
More Pages to Explore .....