Javascript----练习三(循环递归)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Javascript 练习三</title> </head> <style type="text/css"> /* table{ border: 1px solid #B2B2B2; border-collapse: collapse; margin: 0 auto; } table tr{ border-collapse: collapse; } table tr:nth-child(1){ background-color: #DADADA; color: red; } table tr td{ display: inline-block; width: 60px; height: 60px; line-height: 60px; text-align: center; border-collapse: collapse; border: 1px solid #B2B2B2; } table tr td:nth-child(1){ background-color: #DADADA; color: red; } */ table { border: 1px solid #B2B2B2; border-collapse: collapse; margin: 0 auto; } table tr { border-collapse: collapse; } table tr:nth-child(1) {} table tr td { display: inline-block; width: 60px; height: 60px; line-height: 60px; text-align: center; border-collapse: collapse; border: 1px solid #B2B2B2; } table tr td:nth-child(1) {} .b { color: black; background-color: white; } .w { color: white; background-color: black; } </style> <body> <script type="text/javascript"> /*********************************** 1.请写出javascript的三种循环 ***********************************/ /* for,while,do while */ /*********************************** 2.请写出break和continue作用和区别 ***********************************/ /* 作用:中断循环 区别: break中断当前整的循环 continue 中断当前循环 */ /*********************************** 3.循环输出1-100 里奇数 ***********************************/ /* for(var i = 1;i<=99;i+=2){ console.log(i); }*/ /*********************************** 3.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 (程序分析:请抓住分子与分母的变化规律。) ***********************************/ /* var sum = 0; var x = 2; var y = 1; for(var i= 0;i<20;i++){ var div = x/y; var t = x; x = x+y; y = t; sum+=div; } console.log(sum); */ /*********************************** 4.有一座桥,当你身上所拥有的钱大于30000时,每过一次桥则需要支付3000元。当你身上的钱小于或等于30000时,每过一次桥则需要支付你身上10%的钱。已知有一个人身上有33000元,问此人能过这座桥多少次之后,身上的钱会少于100块? ***********************************/ /* var i = 0; var n = 33000; while(n>100){ if(n>30000){ n -= 3000; i++; } else{ n -= n*0.1; i++; } } console.log(i)*/ /*********************************** 5.小明去存1000钱,每天会产生1%的利息,求问,30天后,小明可以拿回多少钱 ***********************************/ /* var n = 30; t = 1000; sum = 1000; for(var i = 0;i<n;i++){ sum *=1.01; } console.log(sum); function getSum(n){ if(n==0){ return t; } else{ return getSum(n-1)*1.01; } } console.log(getSum(30));*/ /*********************************** 6.小明题目升级版,小明拿着1000块在周一买入基金,一开户立给10块红利, 逢周六日没有利息,平时利息为1%,请问30天后,小明可以拿回多少钱? ***********************************/ /*var sum = 1000+10; for(var i = 1;i<=30;i++){ if(i%7==0||i%6==0){ sum = sum; } else{ sum*=1.01; } } console.log(sum); function getSum(n){ if(n==0){ return 1000; } else{ if(n%7==0||n%6==0){ return getSum(n-1); } else{ return getSum(n-1)*1.01; } } } console.log(getSum(30));*/ /*********************************** 7.乘法口诀表: 让学生输出4种方向的乘法口诀表 ***********************************/ /* document.write("<table border = '1'>"); for(var i = 0; i<=9;i++){ if(i == 0){ document.write("<tr>"); for(var j = 0; j<=9 ;j++){ document.write("<td>"+j+"</td>"); } document.write("</tr>"); } else{ document.write("<tr>"); for(var j = 0;j<=9;j++){ if(j==0){ document.write("<td>"+i+"</td>"); } else{ document.write("<td>"+i*j+"</td>"); } } document.write("</tr>"); } } document.write("</table>");*/ /*********************************** 8.给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 ***********************************/ /* num = 43431; i=0; var s = 1; while(num>0){ console.log("i:"+num); num=parseInt(num/10); i++; } console.log("length:"+i); var num = 43431; var max = num; var result=0; while(num>0){ console.log(num+"%"+10+"="+(num%10)); if(num>10){ result =(result + parseInt(num%10))*10; } else{ result +=num; }s num=parseInt(num/10); } console.log(max+"->"+result); */ /*********************************** 9.求100个随机数之和,随机数要求为0—9的整数 ***********************************/ /*var sum = 0; for(var i = 0;i<10;i++){ var num = parseInt(Math.random()*10); console.log(i+":"+num); sum+=num; } console.log("sum:"+sum);*/ /*********************************** 10.通过键盘输入一个任意的正整数(建议这个数比3大), 在网页中输出3至这个数之间所有能被3整除的数字。 ***********************************/ /* var num = parseInt(prompt("请输入一个大于三的整数:")); var j = 1; for(var i = 3;i<=num;i++){ if(i%3==0){ console.log(j+":"+i); } } */ /********************************************** 11.黑白棋 奇数行 && 奇数列 || 偶数行 && 偶数列 **********************************************/ /* var n = 10; var m = 10; document.write("<table class = 't2'>"); for(var i = 0;i<n;i++){ document.write("<tr>"); for(var j =0;j<m;j++){ if(i%2==1&&j%2==1||i%2==0&&j%2==0){ document.write("<td class = 'w'>白</td>"); } else{ document.write("<td class = 'b'>黑</td>"); } } document.write("</tr>"); } document.write("</table>"); */ /********************************************** 12.(提高题)输入一整数A,判断它是否素数(除了自己和1之外,不能被其它数整数) **********************************************/ /* var num = parseInt(prompt("请输入一个大于三的整数:")); function isPrime(number){ //小于2都不是素数 if (number<2) {return false}; //2是素数,被2整除的都不是素数 if (number===2) { return true }else if(number%2===0){ return false; }; //依次判断是否能被奇数整除,最大循环为数值的开方 var squareRoot=Math.sqrt(number); for(var i=3;i<=squareRoot;i+=2){ if (number%i===0) { return false; }; } return true; } var s = isPrime(num)==true?"是素数":"不是素数"; console.log(num+s);*/ /*********************************** 13.(提高题)将100元整钞换成20元、10元、5元、2元、1元零钱,要求零钱总张数为30张,求有多少种换法?假如要求每种纸币必须至少有一张,又有多少种换法呢? ***********************************/ /* var n = 0; for(var i = 0;i<100;i++){ for(var j = 0;j<50;j++){ for(var k = 0;k<20;k++){ for(var l = 0;l<10;l++){ for(var m = 0;m<5;m++){ if((i*20+j*10+k*5+l*2+m) == 100 && i+j+k+l+m ==30){ n++; console.log("第"+n+"种情况:"+"1元"+i+"张,2元"+j+"张,5元"+k+"张,10元"+l+"张,20元"+m+"张"); } } } } } } console.log(n);*/ /*var n = 0; for(var i = 1;i<100;i++){ for(var j = 1;j<50;j++){ for(var k = 1;k<20;k++){ for(var l = 1;l<10;l++){ for(var m = 1;m<5;m++){ if((i*20+j*10+k*5+l*2+m) == 100){ n++; console.log("第"+n+"种情况:"+"1元"+i+"张,2元"+j+"张,5元"+k+"张,10元"+l+"张,20元"+m+"张"); } } } } } } console.log(n);*/ </script> </body> </html>