zoukankan      html  css  js  c++  java
  • 循环结构经典题型

      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>
  • 相关阅读:
    if——while表达式详解
    java算法:抽象数据类型ADT
    java算法:FIFO队列
    Android_NetworkInfo以及判断手机是否联网
    java算法:堆栈ADT及实例
    java算法:数据项
    java算法:一流的ADT
    java算法:复合数据结构
    java算法:字符串
    java算法:基于应用ADT例子
  • 原文地址:https://www.cnblogs.com/zycs/p/12120350.html
Copyright © 2011-2022 走看看