1. 程式人生 > >關於JS中利用for循環解決實際問題的邏輯操作

關於JS中利用for循環解決實際問題的邏輯操作

程序 -s 珠穆朗瑪峰 等於 個數字 b+ break 數量 bsp

第一部分

<script>

// <!--折紙:折多少次和珠穆朗瑪峰一樣高
//1.一張紙的厚度是0.0001米,將紙對折,對折多少次厚度超過珠峰高度8848米-->
//
var depth = 0.0001;

for(i=1;true;i++){
depth=depth*2
if(depth>8848){
alert(i);
break;
}
}

//3.羽毛球拍15元,球3元,水2元。200元每種至少一個,有多少可能
//羽毛球拍最多買13個 球最多買66個 水最多買100個(條件限制)
var m = "";
var n = 0;

for(i=1;i<=13;i++){
for(x=1;x<=66;x++){
for(y=1;y<=100;y++){
var money=i*15+x*3+y*2;
if(money==200){
m += "球拍"+i+"球"+x+"水"+y+"|";
n++;
}
}
}
}
alert(n);alert(m);

//4

.公雞2文,母雞1文,小雞半文,每種至少一只,100文買100只雞有多少可能性
//公雞最多50,母雞最多100,小雞最多200

var a = "";
var b = 0;

for(i=1;i<=50;i++){
for(x=1;x<=100;x++){
for(y=1;y<=200;y++){
var money=i*2+x*1+y*0.5;
var number=i+x+y;
if(money==100 && number==100){
a += "公雞"+i+"母雞"+x+"小雞"+y+"|";
b++;
}
}
}
}
alert(b);alert(a);

//5.
湊錢 1, 2,5湊20元錢有多少可能
// 1元 20 2元 10 5元 4

var a = "";
var b = 0;

for(i=0;i<=20;i++){
for(x=0;x<=10;x++){
for(y=0;y<=4;y++){
var money=i+x*2+y*5;
if(money==20){
a += "一元"+i+"兩元"+x+"五元"+y+"|";
b++;
}
}
}
}
alert(b);alert(a);

// 2.
有一對幼兔,幼兔1個月後長成小兔,小兔1個月後長成成兔並生下一對幼兔,
// 問幾年後有多少對兔子,幼兔、小兔、成兔對數分別是多少。

var syt = 1;
var sxt = 0;
var sct = 0;
var dyt = 0;
var dxt = 0;
var dct = 0;

for(var i=0;i<10;i++) {
//計算當前月份的兔子數量
dyt = sxt+sct;
dxt = syt;
dct = sct+sxt;
//將當前月份的數量轉為上個月的
syt = dyt;
sxt = dxt;
sct = dct;
}
var s = "10個月之後幼兔:"+dyt+"個,小兔:"+dxt+"個,成兔:"+dct+"個";
alert(s);s

</script>

第二部分(難度上升)

<script>

//第一題:
//X3 * 6528 = 3X * 8256
//X為一個數字 填入一個數字 使等式成立

for(x=1;x<10;x++){
var a=(x*10+3);
var b=(3*10+x);
if(a*6528==b*8256){
alert(x);
}
}

//第二題:
//在頁面上輸出以下圖形

var a="*";
for(i=1;i<6;i++){
for(j=1;j<6-i;j++){
document.write("&nbsp");
}
for(s=1;s<2*i;s++){
document.write(a);
}
document.write("<br>");
}


//第三題:
//找出100-999之間的所有“水仙花數”。所謂水仙花數是指一個三位 數,各位數字的立方和等於該數本身。
//(如15的3次方=1的3次方+5的3次方+3的3次方)並輸出這些數字

for(x=1;x<10;x++){
for(y=1;y<10;y++){
for(z=1;z<10;z++){
m=x*x*x+y*y*y+z*z*z;
n=100*x+10*y+z;
if(m==n){
document.write(n+"<br>");
}
}
}
}

//第四題:
//輸出1000年到現在的所有閏年

var s=0;

for(i=1000;i<2018;i++){
if(i%4==0 && i%100!=0 || i%400==0){
s+=i+"||";
}
}
alert(s);

//第五題:
//編寫程序,計算 1!+2!+3!+…..+10!的結果。


var sum=0;

for(i=1;i<11;i++){

var a=1;

for(b=1;b<=i;b++){
a*=b;
}
sum+=a;
}
alert(sum);

</script>

關於JS中利用for循環解決實際問題的邏輯操作