1 <script> 2 // 【程序1】 3 // 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 4 // var month = +prompt("请输入第几月:"); 5 // var sum = 0; 6 // var lastMonth = 2; 7 // var nextMonth = 2; 8 // if (month >= 3) { 9 // for (var i = 3; i <= month; i++) { 10 // sum = lastMonth + nextMonth; 11 // lastMonth = nextMonth; 12 // nextMonth = sum; 13 // } 14 // }else{ 15 // sum = 2; 16 // } 17 // console.log("第" + month + "个月有" + sum + "只兔子"); 18 19 // 【程序2】 20 // 题目:判断101 - 200之间有多少个素数,并输出所有素数。 21 // for (var i = 101; i <= 200; i++) { 22 // for (var j = 2; j < i; j++) { 23 // if (i % j == 0) { 24 // break; 25 // } else { 26 // if (j == i - 1) { 27 // console.log(i); 28 // } 29 // } 30 // } 31 // } 32 33 // // 方法二: 34 // for(var i = 101; i <= 200; i++){ 35 // var isOpen = true; 36 // for(var j = 2; j < i; j++){ 37 // // 判断 38 // if(i % j == 0){ 39 // isOpen = false; 40 // break; 41 // } 42 // } 43 // if(isOpen){ 44 // console.log(i); 45 // } 46 // } 47 // 方法三: 48 // for(var i = 101; i <= 200; i++){ 49 // var num = 0; 50 // for(var j = 1; j <= i; i++){ 51 // if(i % j == 0){ 52 // num++; 53 // } 54 // } 55 // if(num == 2){ 56 // console.log(i); 57 // } 58 // } 59 60 // 【程序3】 61 // 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153 = 1的三次方+5的三次方+3的三次方。 62 // var a = 100; 63 // var b,c,d; 64 // while (a < 1000) { 65 // b = parseInt(a % 10);//个位 66 // c = parseInt(a / 10 % 10);//十位 67 // d = parseInt(a / 100 % 10);//百位 68 // if (a == b * b * b + c * c * c + d * d * d) { 69 // console.log(a); 70 // } 71 // a++; 72 // } 73 74 // 【程序4】 75 // 题目:将一个正整数分解质因数。例如:输入90, 打印出90 = 2 * 3 * 3 * 5。 76 // var pfactor = +prompt("请输入一个正整数"); 77 // for (var i = 2; i <= pfactor; i++) { 78 // if (pfactor % i == 0) { 79 // console.log(i); 80 // pfactor = pfactor / i; 81 // i = 2; 82 // } 83 // } 84 85 86 // 【程序5】 87 // 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 88 // var m = +prompt("请输入第一个正整数"); 89 // var n = +prompt("请输入第二个正整数"); 90 // if (m < n) { 91 // var temp = n; 92 // n = m; 93 // m = temp; 94 // } 95 // var a = m; 96 // var b = n; 97 // while (b != 0) { 98 // var temp1 = a % b; 99 // a = b; 100 // b = temp1; 101 // } 102 // console.log("最大公约数为:" + a); 103 // console.log("最小公倍数为:" + m * n / a); 104 105 // 第二种方法: 106 var m = +prompt("请输入第一个正整数"); 107 var n = +prompt("请输入第二个正整数"); 108 var a = m > n ? n : m; 109 for(var i = a; i > 1; i--){ 110 if(m % i == 0 && n % i == 0){ 111 var b = i; 112 break; 113 } 114 } 115 if(i == 1){ 116 document.write("这两个数没有最大公约数"); 117 document.write("最小公倍数为" + (m * n)); 118 }else{ 119 document.write("最大公约数" + b); 120 document.write("最小公倍数为" + (m * n)/b); 121 } 122 // console.log((m * n)/b); 123 124 // 【程序6】 125 // 题目:求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字。例如2 + 22 + 222 + 2222 + 22222(此时共有5个数相加) ,几个数相加有键盘控制。 126 // var num = +prompt("请输入相加的数"); 127 // var num1 = num; 128 // var count = +prompt("请输入相加的次数"); 129 // var sum = num; 130 // for(var i = 1 ;i<count ;i++){ 131 // num = num*10+num1; 132 // sum += num; 133 // } 134 // console.log(sum); 135 136 // 第二种方法: 137 // var num = +prompt("请输入相加的数字个数"); 138 // var n = +prompt("底数"); 139 // var n1 = 0; 140 // var sum = 0; 141 // for(var i = 0; i < num ; i++){ 142 // n1 += n; 143 // n *= 10; 144 // console.log(n,n1); 145 // sum += n1; 146 // } 147 // console.log(sum); 148 149 // 第三种方法: 150 // for(var i = 0; i < num ; i++){ 151 // n1 += 2*Math.pow(10,i); 152 // console.log(n1); 153 // sum += n1; 154 // } 155 // 【程序7】 156 // 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6 = 1+2+3.编程 找出1000以内的所有完数。 157 // var sum; 158 // for (var i = 1; i < 1000; i++) { 159 // sum = 0; 160 // for (var j = 1; j < i; j++) { 161 // if (i % j == 0) { 162 // sum = sum + j; 163 // } 164 // } 165 // if (sum == i) { 166 // console.log(i); 167 // } 168 // } 169 170 // 第二种方法: 171 // for(var i = 1; i <= 1000; i++){ 172 // var sum = 0; 173 // for(var j = 1; j < i ; j++){ 174 // if(i % j == 0){ 175 // sum += j; 176 // } 177 // } 178 // if(i == sum){ 179 // console.log(i); 180 // } 181 // } 182 // 【程序8】 183 // 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 184 // var count = 0; 185 // for (var i = 1; i <= 4; i++) { 186 // for (var j = 1; j <= 4; j++) { 187 // for (var k = 1; k <= 4; k++) { 188 // if (i != j && j != k && i != k) { 189 // count++; 190 // console.log(i * 100 + j * 10 + k); 191 // } 192 // } 193 // } 194 // } 195 // console.log("总共能组成"+count+"个数字"); 196 197 198 199 // 【程序9】 200 // 题目:企业发放的奖金根据利润提成。 201 //利润(I)低于或等于10万元时,奖金可提10 %; 202 //利润高于10万元,低于20万元时,低于10万元的部分按10 % 提成,高于10万元的部分,可可提成7.5 %; 203 //20万到40万之间时,高于20万元的部分,可提成5 %; 204 //40万到60万之间时,高于40万元的部分,可提成3 %; 205 //60万到100万之间时,高于60万元的部分,可提成1.5 %,高于100万元时,超过100万元的部分按1 % 提成, 206 //从键盘输入当月利润I,求应发放奖金总数? 207 208 // var profit = +prompt("请输入当月利润(单位:万)"); 209 // var bonus = 0;//奖金 210 // if (profit < 0) { 211 // console.log("输入错误"); 212 // } else if (profit > 0 && profit <= 10) { //小于10万 213 // bonus = profit * 0.1; 214 // } else if (profit > 10 && profit < 20) { //10-20万 215 // bonus = (profit - 10) * 0.075 + 1; 216 // } else if (profit >= 20 && profit < 40) { //20-40万 217 // bonus = (profit - 20) * 0.05 + 1.75; 218 // } else if (profit >= 40 && profit < 60) { //40-60万 219 // bonus = (profit - 40) * 0.03 + 2.75; 220 // } else if (profit >= 60 && profit < 100) { //60-100万 221 // bonus = (profit - 60) * 0.015 + 3.35; 222 // } else { //大于100万 223 // bonus = (profit - 100) * 0.001 + 3.95; 224 // } 225 226 // console.log("奖金为"+bonus*10000+"元"); 227 228 229 230 231 // 【程序10】 232 // 题目:打印出如下图案(菱形) 233 // for (var i = 0; i < 6; i++) { 234 // for (var j = 0; j < i; j++) { 235 // document.writeln("*"); 236 // } 237 // document.write("<br/>"); 238 // } 239 // for (var i = 6; i > 0; i--) { 240 // for (var j = 0; j < i; j++) { 241 // document.writeln("*"); 242 // } 243 // document.write("<br/>") 244 // } 245 </script>