js迴圈語句習題
1、打印出下列圖形
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
//迴圈的行數
for(var x=1;x<=7;x++){
//迴圈的列數
for(var y=1;y<=8;y++){
document.write('●');
}
//迴圈完每一行輸出一個換行
document.write('<br />');
}
●
●●
●●●
●●●●
●●●●●
for(var x=1;x<=5;x++){
for(var y=1;y<=x;y++){
document.write('●');
}
document.write('<br />');
}
●●●●●
●●●●
●●●
●●
●
for(var i=5;i>=1;i--){
for(var j=1;j<=i;j++){
document.write("●")
}
document.write("<br>")
}
□□□□●
□□□●●
□□●●●
□●●●●
●●●●●
for(var i=1;i<=5;i++){
for(var a=1;a<=5-i;a++){
document.write("□");
}
for(var b=1;b<=i;b++){
document.write("●");
}
document.write("<br>");
}
2、公園裡有一隻猴子和一堆桃子,猴子每天吃掉桃子總數的一半,把剩下一半中扔掉一個壞的。到第七天的時候,猴子睜開眼發現只剩下一個桃子。問公園裡剛開始有多少個桃子?
for迴圈
//最後一天剩下一個桃子
var peach= 1;
//反推
for(var i=1;i<=6;i++){
peach=(peach+1)*2;
}
console.log("公園裡剛開始有"+peach+"個桃子");
while迴圈
var peach=1,a=1;
while(a<=6){
peach=(peach+1)*2;
a++;
}
console.log("公園裡剛開始有"+peach+"個桃子");
do-while迴圈
var peach=1,a=1;
do{
peach=(peach+1)*2;
a++;
}while (a<=6)
console.log("公園裡剛開始有"+peach+"個桃子");
3、迴圈輸出1~100之間數字的和
var sum=0;
for(var i=1;i<=100;i++){
sum+=i;
}
document.write(sum);
4、1~100奇數和
var sum=0;
for(var i=1;i<=100;i+=2){
sum+=i;
}
document.write(sum+"<br />");
5、1~100偶數和
var sum=0;
for(var i=2;i<=100;i+=2){
sum+=i;
}
document.write(sum);
6、99乘法表倒著寫
for(var i=9;i>=1;i--){
for(var j=1;j<=i;j++){
document.write(i+"x"+j+"="+i*j+"  ")
}
document.write("<br>")
}
7、小明單位發了100元的購物卡,小明到超市買三類洗化用品,洗髮水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些購買結合?
//a=洗髮水,b=香皂,c=牙刷
//100元可以買6瓶洗髮水
for(var a=0;a<=6;a++){
//100元可以買50塊香皂
for(var b=0;b<=50;b++){
//100元可以買20個牙刷
for(var c=0;c<=20;c++){
//滿足條件
if(15*a+2*b+5*c==100){
document.write("洗髮水:"+a+"香皂:"+b+"牙刷:"+c+"<hr />");
}
}
}
}
8、湊錢1,2,5湊20元錢有多少種可能?
//a=一元,b=兩元,c=五元
//20元可以換20個一元
for(var a=0;a<=20;a++){
//20元可以換10個兩元
for(var b=0;b<=10;b++){
//20元可以換4個五元
for(var c=0;c<=4;c++){
//滿足條件
if(a+2*b+5*c==20){
document.write("一元:"+a+"兩元:"+b+"五元:"+c+"<hr />")
}
}
}
}
9、球從100米的高度落地,每次落地彈起原高度的一半再落下,求在第10次落下時,共經過了多少米?第10次的反彈了多高?
var a=0,h=100;
while(a<=10){
h=h/2;
a++;
}
document.write(h);
10、球從100米的高度落地,每次落地彈起原高度的一半再落下,求在第10次落下時,共經過了多少米?第10次的反彈了多高?
var money=10000,a=1;
while(a<=5){
money=money*0.003+money;
a++;
}
document.write(money);
11、對1~n進行求和
var n=Math.abs(parseInt(prompt("請輸入數字")));
var sum=0;
for(var a=1;a<=n;a++){
sum+=a;
}
document.write(sum);
12、一個籃球的高度為100米 每次落地彈起高度為前一次高度的0.6 問多少次之後高度小於1米?
var x=0,h=100;
while(true){
h=h*0.6;
x++;
if(h<1){
//跳出迴圈
break;
}
}
document.write(x);
13、一張無限大的紙,可以疊任何次數,已知紙後0.03毫米,對摺多上次可達到珠穆朗瑪峰的高度8848米
//注意單位換算
var a=0.00003,b=0;
while(true){
a=a*2;
b++;
if(a>=8848){
break;
}
}
document.write(b);
14、計算1~100之間所有不能被3整除的整數的和大於或等於2000的數字
var sum=0;
for(var a=1;a<=100;a++){
if(!(a%3==0)){
sum+=a;
if(sum>=2000){
document.write(sum+"<br>");
}
}
}
15、輸入一個年份,判斷是否是閏年(能被4整除卻不能被100整除的年份,世紀年份能被400整除的是閏年)
var year=parseInt(prompt("請輸入年份"));
if((year%4==0 && year%100!=0) || year%400==0){
alert(year+"是閏年");
}else{
alert(year+"是平年");
}
16、輸入學生姓名,輸入考試成績若是100,【恭喜你***,滿分通過!】若是大於等於80小於100,【**,你很優秀,繼續保持!】若是大於等於60小於80,【**成績良好】大於等於50小於60,【**就差一點點,下次一定要至少及格!】小於50,【**得加油哦】
var Yname=prompt("請輸入學生姓名"),score=prompt("請輸入學生成績");
if(score==100){
alert("【恭喜你"+Yname+",滿分通過】")
}else if(score>=80 && score<100){
alert(Yname+"【你很優秀,繼續保持】")
}else if(score>=60 && score<80){
alert(Yname+"【成績良好】")
}else if(score>=50 && score<60){
alert(Yname+"【就差一點點,下次一定要至少及格!】")
}else if(score<50){
alert(Yname+"【得加油哦】")
}