//程序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); } }