`
rein07
  • 浏览: 21902 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

数字1亿里面有多少个1呢

阅读更多
乍看这题真够唬人的,群里看到这个题目后争先恐后的说看法。最简单的办法不外乎就是遍历每个数,然后toString() 看看里面有多少个1,最后全部加起来,这是我们得到标准答案的办法。

群里3个人写了3个笨方法都跑出来了,3个笨方法,呵呵 有意思,笨方法也不一样。 程序的实现真是变幻莫测。

view sourceprint?01 var re = /1{1}/g; 

02   

03 var max = 1 * 10000 * 10000; 

04   

05 getTotal(f); 

06 getTotal(f1); 

07 getTotal(f2); 

08   

09 function getTotal(func) 

10 { 

11     var total = 0; 

12     var begin = new Date(); 

13     for(var i= 1 ;i <= max;i++) 

14     { 

15         total += func(i); 

16     } 

17     var end = new Date(); 

18     var timespan = end - begin; 

19     alert("开始时间:"+begin + "\n 结束时间:"+end +"\n总耗时:"+timespan + "毫秒 \n 总数:"+total); 

20 } 

21   

22 function f(num) 

23 { 

24     var t = 0; 

25     while(num) 

26     { 

27         if(num < 10){ if(num==1)t++;break;} 

28         var i = num % 10; 

29         if(i == 1) t++;     

30         num = parseInt(num / 10); 

31     } 

32     return t; 

33 } 

34   

35 function f1(num) 

36 { 

37     var str = num.toString() 

38     var t = 0; 

39     for(var i=0;i<str.length;i++) 

40     { 

41         if(str.charAt(i)=="1") t++; 

42     } 

43     return t; 

44 } 

45   

46 function f2(num) 

47 { 

48     var str = num.toString(); 

49     var t = 0; 

50     while(re.exec(str)) 

51     { 

52         t++; 

53     } 

54     return t; 

55 }

当数量少的时候第一种最快,显然嘛,没有处理字符串的步骤。按理说数量越大他越有优势。 可是实测结果,3个都差不多。但是用C#跑的话,第一个明显越来越有优势。。。。

但是出题人肯定不是这样想的,很多人都在说自己的技巧与看法,我也思考了很久。

先拿 100来说 ,100里面有多少个1?

view sourceprint?01 10 

02 11 

03 12 

04 13 

05 14 

06 15 

07 16 

08 17 

09 18 

10 19 

11 01 

12 11 

13 21 

14 31 

15 41 

16 51 

17 61 

18 71 

19 81 

20 91

故意这么排列是我们可以把 0~99看作是 1个长度为2的数组, 1位为1时,2位的可能性是10,2位为1时1位的可能性为10,所以 0~99应该有20个1,而100有1个所以是21个。

999就应该是 1*10*10 + 10*1*10 + 10*10*1 = 300

400呢? 因为首位只能出现0~3 ,所以应该是 1*10*10 + 4*1*10 + 4*1*10

4 0000 0000 应该是 1 * (10^8) + 4*(10^7) * 8 = 420000000
分享到:
评论

相关推荐

    1亿以内的质数(共5761455个数).txt_1亿以内素数的个数

    根据题目给出的信息,1亿以内的质数共有5,761,455个。这一数字不仅展示了质数分布的密集程度,也反映了寻找并验证大范围质数的计算挑战。 #### 三、质数的分布规律 1. **质数分布定理**:随着数值增大,质数变得...

    javascript从一亿个数中找出最大的100个 或者n个

    从一亿个数中找出最大的100个 或者n个 用了个堆从一亿个数中找出最大的100个 或者n个 用了个堆

    1亿内的所有质数

    把1亿内的所有质数用.in文件里存放 相邻2个数字用空格隔开.

    苏教小学数学四年级下册一亿有多大PPT学习教案.pptx

    例如,在解决“数1亿本本子需要多长时间”这一问题时,学生可能需要设计一个模拟实验,估算出一个人在一定时间里能数多少本书,然后根据这个速度来推算数1亿本书所需的时间。这个过程不仅锻炼了学生的问题分析能力,...

    四年级数学上册 第一单元 大数的认识 1亿以内数的认识一课一练(无答案) 新人教版 试题.doc

    3. **数量关系**:十万里面有10个一万,一百万里面有10个十万,一千万里面有10个一百万,一亿里面有10个一千万。 4. **数位顺序表**:亿级包含亿位,万级包含万位,个级包含个位、十位、百位和千位。 5. **数的...

    四年级数学上册 第1单元 大数的认识 第13课时 1亿有多大导学案(无答案) 新人教版 学案.doc

    新人教版的《四年级数学上册》第一单元“大数的认识”中的第13课时“1亿有多大”就是一个典型课程。该课程不仅仅是一个数学知识的传授,更是一次深刻体验和实践的过程,让孩子们在探索中理解大数,并将其与日常生活...

    将阿拉伯数字转换为金额的汉字大写

    在中国,金额的汉字大写有特定的规则,例如1到10的汉字大写分别是壹、贰、叁、肆、伍、陆、柒、捌、玖、拾,而个位与十位、百位、千位、万位等的组合也有固定的表达方式。例如,数字1234567890对应的汉字大写是壹拾...

    Hootsuite-2021年全球数字化报告(英文)-2021.1-299页.pdf

    这导致全球数字报告中的多个指标在过去12个月里出现了惊人的增长。特别是在社交媒体方面,用户数量自2020年以来增长超过13%,在过去一年内增加了近5亿用户,2021年初全球社交媒体用户总数达到42亿。 增长不仅仅体现...

    火山安卓数字转金额大写,有单位等.rar

    如果"火山安卓数字转金额大写,有单位等"这个压缩包文件提供了代码示例,那么它可能包含了一个自定义的`NumberToChinese`类,这个类里封装了上述的转换逻辑。开发者可以调用类中的方法,如`toChinese(String ...

    四年级数学上册1大数的认识1.3亿以上数的认识教学反思素材新人教版

    比如,教师可以先让学生尝试阅读和书写1亿以内的数,然后逐步扩展到1亿以上的数,这样可以让学生在原有的数感基础上自然过渡。在这个过程中,学生的合作交流也是非常关键的,通过讨论和互相帮助,他们能更好地掌握数...

    中国数字经济内部发展水平及耦合协调度分析_薛洁.pdf

    中国的数字经济在过去几年里实现了迅猛的增长,2021年的规模达到了45.5万亿元人民币,占国内生产总值(GDP)的比例高达39.8%。数字产业化、产业数字化以及数字化治理被视为数字经济发展的三个关键组成部分。数字产业化...

    大数的认识1.ppt

    2. 一百万里面有10个十万,一亿里面有100个一百万,这展示了数值之间的进率关系。 3. 在数字80528580中,从左往右数,第一个8表示8个千万,第二个8表示8个万,第三个8表示8个十,这体现了每个数位上的数字所代表的值...

    凯捷-2019数字金融服务报告(英文)-2019.4-36页.pdf.pdf

    根据提供的文件信息,我们可以从这份名为“凯捷-2019数字金融服务报告”的文档中提炼出以下几个关键知识点: ### 一、研究背景与目的 #### 背景概述 金融服务业正处于一场完美的数字风暴中心,面临着来自多方面的...

    年仅26岁的CEO融资1亿美元 与微软平等对话.docx

    - Box.net 在2000年成立后的几年内进行了多次大规模融资,总额超过了1亿美元。 - 公司的估值达到了5亿美元。 - 公司计划更换更大的办公场所以适应快速增长的员工队伍。 #### 深入分析: 对于初创企业来说,有效的...

    人教版四年级上册数学全册练习题集.doc

    - 十万里面有10个一万,一百万里面有10个十万,一千万里面有10个一百万,一亿里面有10个一千万。 7. 数的读法练习: - 练习题中给出了多个数字,如683596、3598840等,要求先用竖线分级,然后读出这些数字。 8. ...

    数字对联_经典对联.doc

    - “一落千丈、一劳永逸、一马领先”等成语展现了数字在成语中的运用,每个成语都有特定的含义,如“一落千丈”形容地位、情况急剧下降。 8. **数字在对仗中的运用**: - “一乡二里三夫子不识四书五经六艺竟敢教...

    用于更方便的解决PHP中超大数字和浮点数精度问题

    在32位系统中,最大整数值可能只有2^32-1(约42亿),而在64位系统中,这个值通常可以达到2^64-1(约9.22E18)。如果数值超过了这些限制,PHP将使用浮点数表示,但浮点数在计算机中是以二进制形式存储的,这会导致...

    麦肯锡报告:解读中国数字消费者

    同时,预计到2012年,通过移动终端上网的用户数量将在现有的2.33亿基础上增加1亿。 2. **数字消费者的细分市场**:报告识别出了七大细分市场,包括“数字达人”、“游戏玩家”、“信息至上型”、“移动行家”、...

    40亿个非负整数中找到未出现的数

    32位无符号整数的范围是0 ~ 4 294 967 295,现在有一个正好包含40亿个无符号整数的文件,所以在整个范围中必然有未出现过的数。怎么找到所有未出现过的数? 要求: 可以使用最多1GB的内存。 进阶: 内存限制10MB,...

Global site tag (gtag.js) - Google Analytics