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>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM