程序里面的‘脑筋急转弯’
Posted qingshanyici
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序里面的‘脑筋急转弯’相关的知识,希望对你有一定的参考价值。
数学中有一种特别常见的取巧算法,首尾相加,快速算和,高斯算法的背后小故事我都还记得清楚,真是让人羡慕的聪明脑子啊!所以我这种凡人只能通过苦思冥想才能发现程序与数学中的小陷阱和小技巧,记录下来做成标记,钉在我这平凡的人生号码牌上吧。
1. 使用while语句计算1到100的和。
首先给出我这平凡大脑错误的想法:
1 var i=0; 2 var sum=0; 3 while (i<=100){ 4 i++ 5 sum=sum+i; 6 } 7 console.log(‘1到100的和‘,sum); 8 //得到错误结果值5151
然后是我想不明白的正确写法:
1 var i=1; 2 var sum=0; 3 while(i<=100){ 4 sum+=i; 5 i++; 6 } 7 console.log(‘正确的结果--》‘,sum);//正确结果:5050
2. 获取某个字符在字符串中出现的次数。
正确的写法是这样的,我这愚笨的脑袋已经把自己犯错的点写下来了。o(╥﹏╥)o
1 var str="四十四,四十是四十" 2 var position=0;//记录出现的位置 3 var time=-1;//记录出现的次数,这里为什么是-1呢? 4 var index=0;//记录开始查找的位置 5 while(position!=-1){ 6 position=str.indexOf(‘四‘,index); 7 time++; 8 index=position+1; 9 } 10 console.log("共有几个字符串?--》",time)
以上是关于程序里面的‘脑筋急转弯’的主要内容,如果未能解决你的问题,请参考以下文章
用户定义的 Copy ctor 和 copy-ctors 进一步向下链编译器错误?程序员脑筋急转弯?