for循环练习题(共六道题)

第一题:

假设一个简单的ATM机的取款过程是这样的:
首先提示用户输入密码(password),
最多只能输入三次,超过3次则提示用户“密码错误,
请取卡”结束交易。如果用户密码正确,
再提示用户输入取款金额(amount),
ATM机只能输出100元的纸币,一次取钱数要求最低
100元,最高1000元。
若用户输入的金额符合上述要求,则打印输出用户取得钱数,
最后提示用户“交易完成,请取卡”,否则提示用户重新输入金额。
假设用户密码是111111,请编程实现。
//银行卡取款问题
    //循环三次,检测密码是否正确
    for( var n = 1;n < 4;n++){
        //输入密码检测是否正确
    var password = parseInt(prompt("请输入您的取款密码"));
        //正确时,下一步
    if(password == 111111){
        //提示输入金额
        var amount = parseInt(prompt("请输入您的取款金额"));
        //检测金额是否在100-1000且 被100整除
        if( amount >=100 && amount <=1000 && amount % 100 == 0){
            //通过时,打印输入的金额
            alert("您已成功取款" + amount + "元");
            //打印完成后提示
            alert("交易完成,请取卡");
            break;    
        }
            //不通过时 ,提示重新输
        else{
            alert("输入金额错误,取卡");
            break;
        }
        }
    
    else if(n <3){
            
        alert("密码输入错误,请重新输入");
        }
    else{
        alert("密码错误,请取卡");
        break;
    }
    } 

第二题:

公园里有一只猴子和一堆桃子,猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的。到第七天的时候,猴子睁开眼发现只剩下一个桃子。问公园里刚开始有多少个桃子?
var t = 1;
    for(var d = 6;d >= 1; d--){
        t = (t + 1) * 2
    }if( d < 1){
        alert("刚开始有" + t + "个桃子");
    }

 

第三题:

有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,求棋盘上放的所有芝麻的重量
var b = 1;
    var c = 0;
    for(var a = 1;a <= 63;a++){
        b = 2 * b;
        c = b + c; 
    }
    
        alert("棋盘上芝麻重量总和为:" + (c + 1) * 0.00001 + "kg"); 

 

第四题:

大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,该如何调配?

for( var dm = 0; dm <= 50;dm++){
        for( var zm = 0; zm <= 100;zm++){
            for( var xm = 0; xm <= 200;xm++){
                if(dm + zm + xm == 100 && (dm * 2) + (zm * 1) + (xm / 2) == 100){
                    document.write("大马:" + dm + "只," + "中马:" + zm + "只," + "小马:" + xm + "只," + "<br />");
                }
            }
        }
    }

第五题:

实现1!+2!+3!+4!+5!+....+n!

n!为n的阶乘 等于 1 * 2 * 3 * 4.......* n

var n = parseInt(prompt("请输入一个数值"));
    var x = 1;
    var y = 0;
    for(i = 1;i <= n;i++){
        x = x * i;
        y = x + y;
    }
    alert(n + "的阶乘和为:" + y);

 第六题:

假设某人有100,000现金.每经过一次路口需要进行一次交费. 交费规则为当他现金大于50,000时每次需要交5%如果现金小于等于50,000时每次交5,000.请写一程序计算此人可以经过多少次这个路口

var m = 100000;
    var n = 0;
    while(m > 5000){
        if(m > 50000){
            m = m -  (0.05 * m);
    }else{
            m = m - 5000;
    }
    n++;
}
alert("总共会经过" + n + "次路口");

 

以下是完整代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    </body>
</html>
<script type="text/javascript">
      //银行卡取款问题
    //循环三次,检测密码是否正确
    /*for( var n = 1;n < 4;n++){
        //输入密码检测是否正确
    var password = parseInt(prompt("请输入您的取款密码"));
        //正确时,下一步
    if(password == 111111){
        //提示输入金额
        var amount = parseInt(prompt("请输入您的取款金额"));
        //检测金额是否在100-1000且 被100整除
        if( amount >=100 && amount <=1000 && amount % 100 == 0){
            //通过时,打印输入的金额
            alert("您已成功取款" + amount + "元");
            //打印完成后提示
            alert("交易完成,请取卡");
            break;    
        }
            //不通过时 ,提示重新输
        else{
            alert("输入金额错误,取卡");
            break;
        }
        }
    
    else if(n <3){
            
        alert("密码输入错误,请重新输入");
        }
    else{
        alert("密码错误,请取卡");
        break;
    }
    } */
    //第二题:
    /*var t = 1;
    for(var d = 6;d >= 1; d--){
        t = (t + 1) * 2
    }if( d < 1){
        alert("刚开始有" + t + "个桃子");
    }*/
    //第三题:
    /*var b = 1;
    var c = 0;
    for(var a = 1;a <= 63;a++){
        b = 2 * b;
        c = b + c; 
    }
    
        alert("棋盘上芝麻重量总和为:" + (c + 1) * 0.00001 + "kg"); */
    //第四题:
    /*for( var dm = 0; dm <= 50;dm++){
        for( var zm = 0; zm <= 100;zm++){
            for( var xm = 0; xm <= 200;xm++){
                if(dm + zm + xm == 100 && (dm * 2) + (zm * 1) + (xm / 2) == 100){
                    document.write("大马:" + dm + "只," + "中马:" + zm + "只," + "小马:" + xm + "只," + "<br />");
                }
            }
        }
    } */
    //第五题:
    /*var n = parseInt(prompt("请输入一个数值"));
    var x = 1;
    var y = 0;
    for(i = 1;i <= n;i++){
        x = x * i;
        y = x + y;
    }
    alert(n + "的阶乘和为:" + y);*/
    //第六题:
    /*var m = 100000;
    var n = 0;
    while(m > 5000){
        if(m > 50000){
            m = m -  (0.05 * m);
    }else{
            m = m - 5000;
    }
    n++;
}
alert("总共会经过" + n + "次路口");*/    
</script>
原文地址:https://www.cnblogs.com/0328dongbin/p/8798621.html