循环结构经典题型

  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>
原文地址:https://www.cnblogs.com/zycs/p/12120350.html