//程序11 //判断101-200之间有多少个素数,并输出所有素数。 for(var n=101;n<=200;n++){ for(var i=2;i<n;i++){ if(n%i==0){ console.log(n); break; } } } //------------------------------------------------------------------------------------------------------------------------------ //程序12 //打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 for(var i=100,s=0;i<=999;i++){ var arr=i.toString().split(''); var s=Math.pow(arr[0],3)+Math.pow(arr[1],3)+Math.pow(arr[2],3); if(i==s){ console.log(i); } } //------------------------------------------------------------------------------------------------------------------------------ //程序13 //利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,6 0分以下的用C表示。 //三目运算符 var score=99; var result=score>=90 ? 'A':(score>=60 ? 'B':'C'); console.log(result); //------------------------------------------------------------------------------------------------------------------------------ //程序14 //输入两个正整数m和n,求其最大公约数和最小公倍数。 //辗转相除法 function fn(num1,num2){ var i=1,s=1; var n1=num1,n2=num2; do{ s=num1%num2; num1=num2; num2=s; if(s==0){ var factor=num1; } i++; } while (i<1000); var multiple=n1*n2/factor; return '最大公约数:'+factor +'\n最大公倍数:'+multiple; } var f=fn(40,30); console.log(f); //更相减损法 function fn(num1,num2){ var i=1,s=1,j=0; var n1=num1,n2=num2; do{ if(num1%2==0 && num2%2==0){ num1/=2; num2/=2; j++; }else{ if(num1>num2){ s=num1-num2; num1=num2; num2=s; var t=num1; }else{ s=num2-num1; num2=num1; num1=s; var t=num2; } if(s==0){ var factor=t*Math.pow(2,j); } } i++; } while (i<1000); var multiple=n1*n2/factor; return '最大公约数:'+factor +'\n最大公倍数:'+multiple; } var f=fn(40,30); console.log(f); //程序15 //输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 var str='JavaScript 我/-学习/123#$_Web'; var arr=str.split('') var a=0,b=0,c=0,d=0; for (var i=0;i<arr.length ;i++ ){ var codeArr=arr[i].charCodeAt() if (codeArr>=19968 || codeArr>=65 &&codeArr<=90 || codeArr>=97 && codeArr<=122){ a++; } if(codeArr>=48 && codeArr<=57){ b++; } if(codeArr==32){ c++; } } var other=arr.length-a-b-c console.log('中英文字母个数:'+a); console.log('数字个数:'+b); console.log('空格数:'+c); console.log('其他字符个数:'+other); //----------------------------------------------------------------------------------------------------------------------------- //程序16 //求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制 function fn(a,n){ for (var i=0,t=0,s=0;i<=n-1 ;i++ ){ t+=a*Math.pow(10,i); s+=t; } console.log(s); } fn(3,5); //----------------------------------------------------------------------------------------------------------------------------- //程序17 //一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。 for(var j=1;j<=1000;j++){ for (var i=1,s=0;i<j ;i++ ){ if(j%i==0){ s+=i; } } if(s==j){ console.log(s); } } //----------------------------------------------------------------------------------------------------------------------------- //程序18 //一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? //方法一 var n=3; for (var i=1,sum=0;i<=n ;i++ ){ function fn(i){ if(i==1){ return 50; } return fn(i-1)/2 } sum+=fn(i); } console.log(sum+'\n'+fn(10)); //方法二 var n=10; var h=100,s=0; for(var i=1;i<=n;i++){ h/=2; s+=h; } console.log(s+'\n'+h); //---------------------------------------------------------------------------------------------------------------------------- //程序19 //猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。1534 //规律:第一天 num/2+1;第二天 (num/2+1)/2;第三天 (num/2+1)/4;... for(var num=0;num<100000;num+=2){ var a=num/2+1; for(var i=1,sum=0;i<10;i++){ sum+=a; a/=2; } if((num-sum)==1){ console.log(num); } }