第一个问题是首先要获取圆周率PI的值,自己在网上查了一下利用Leibniz定理,计算出圆周率。
第二个问题是获取手机号码的后四位,利用stringObject.substring(start,stop)方法提取字符串中介于两个指定下标之间的字符。
第三个问题遍历输出号码后四位的每一位,用stringObject.charAt(index) 方法返回指定位置的字符。
然后是利用stringObject.indexOf(searchvalue,fromindex)方法返回某个指定的字符串值在字符串中首次出现的位置
这样写下来最后出现一个问题,document.write("<br/>"+mm.indexOf(str));老是报错,然后检查发现得出的圆周率mm是一个值,要把它转化为字符串才能使用。
也就是 document.write("<br/>"+mm.toString().indexOf(str));

1 <!doctype html> 2 <html lang="zh-cn"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>随机数</title> 6 <script type="text/javascript"> 7 //Leibniz定理:1/1-1/3+1/5-1/7+1/9...=pi/4 8 var count=100000; 9 var PI=1; 10 var set=1; 11 for(var i=3;i<count;i++,i++,set++){ 12 if(set%2==0){ 13 PI+=1/i; 14 }else{ 15 PI-=1/i; 16 } 17 } 18 //计算圆周率 19 var mm=PI*4; 20 document.write(mm); 21 //alert(mm); 22 var phoneNum="16546324056"; 23 //输出后四位,从第七个开始分出后四位 24 var strPhoneNum=phoneNum.substring(7); 25 //alert(strPhoneNum); 26 for(var i=0;i<4;i++){ 27 //获取后四位各个字符 28 var str=strPhoneNum.charAt(i); 29 //alert(str); 30 //mm得出的是一个值,将值转化为字符串再检索 31 document.write("<br/>"+mm.toString().indexOf(str)); 32 } 33 34 </script> 35 </head> 36 <body> 37 38 </body> 39 </html>
这样的出来的还有弊端就是没有出现的值以-1的形式输出,检索出来的只是字符串值在字符串中首次出现的位置。
先保存,晚会抛出修正后的代码....
第二期修改中出现的问题:这样查找效率太低,只能一次次的查,代码较多冗余度

<script type="text/javascript"> //Leibniz定理:1/1-1/3+1/5-1/7+1/9...=pi/4 var count=100000; var PI=1; var set=1; for(var i=3;i<count;i++,i++,set++){ if(set%2==0){ PI+=1/i; }else{ PI-=1/i; } } //计算圆周率 var mm=PI*4; document.write(mm); //alert(mm); var phoneNum="16546324056"; //输出后四位,从第七个开始分出后四位 var strPhoneNum=phoneNum.substring(7); //alert(strPhoneNum); for(var i=0;i<4;i++){ //获取后四位各个字符 var str=strPhoneNum.charAt(i); //alert(str); //mm得出的是一个值,将值转化为字符串再检索 var position=mm.toString().indexOf(str); //alert(position); if(position=="-1"){ document.write("<br/>PI中不存在"+i); }else{ document.write("<br/>"+str+"存在字符中第"+position+"位"); //查找出第二个出现的位置 var position2=mm.toString().indexOf(str,position+1); if(position2!="-1"){ document.write("<br/>"+str+"存在字符中第"+position2+"位"); } else{ document.write("<br/>字符串中只存在一个"+str); } //查找出第三个出现的位置 var position3=mm.toString().indexOf(str,position2+1); if(position3!="-1"){ document.write("<br/>"+str+"存在字符中第"+position3+"位"); } else{ document.write("<br/>字符串中存在两个"+str); } } } </script>
后来修改了之后的代码:是查找号码后四位中的每一个数字在PI中的位置(现在才发现理解错题意了,OMG的,这是有多蠢!!!!!!!),

1 <script type="text/javascript"> 2 var count=100000; 3 var PI=1; 4 var set=1; 5 for(var i=3;i<count;i++,i++,set++){ 6 if(set%2==0){ 7 PI+=1/i; 8 }else{ 9 PI-=1/i; 10 } 11 } 12 //计算圆周率 13 var mm=(PI*4).toString(); 14 document.write("圆周率是:"+mm); 15 //var bb=mm.split("."); 16 // document.write("圆周率是:"+bb); 17 var pai=mm.split(".").join("") 18 document.write("<br/>去掉点之后的圆周率是:"+pai); 19 //alert(mm); 20 var phoneNum="16546324056"; 21 //输出后四位,从第七个开始分出后四位 22 var strPhoneNum=phoneNum.substr(7); 23 document.write("<br/>号码后四位是:"+strPhoneNum); 24 25 for(i=0;i<pai.length;i++){ 26 var sub=pai.substr(i,1); 27 document.write("<br/>"+sub); 28 29 for(var j=0;j<4;j++){ 30 //获取后四位各个字符 31 var str=strPhoneNum.charAt(j); 32 if(str==sub){ 33 document.write(" "+str+"在PI中的位置是:"+(i+1)); 34 } 35 36 } 37 38 }
——————————————————————————————————————————————————————————————————————————————————
题意是要后四位号码在PI中位置,号码后四位是连续的...,/(ㄒoㄒ)/~~

<script type="text/javascript"> var count=100000; var PI=1; var set=1; for(var i=3;i<count;i++,i++,set++){ if(set%2==0){ PI+=1/i; }else{ PI-=1/i; } } //计算圆周率 var mm=(PI*4).toString(); document.write("圆周率是:"+mm); //var bb=mm.split("."); // document.write("圆周率是:"+bb); var pai=mm.split(".").join("") document.write("<br/>去掉点之后的圆周率是:"+pai); //alert(mm); var phoneNum="16546324056"; //输出后四位,从第七个开始分出后四位 var strPhoneNum=phoneNum.substr(7); document.write("<br/>"+strPhoneNum); for(i=0;i<pai.length-4;i++){ var sub=pai.substr(i,4); //document.write("<br/>"+sub); if(strPhoneNum==sub){ document.write(strPhoneNum+"在PI中的位置是:"+i); i=i+4; }else{ document.write("<br/>没找到"); } if(i==pai.length-4){ document.write("没找到"); } }