for循环的实例

1.大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,该如//首先我们要知道一百石粮食需要这些马分别几匹

//第一个是大马,需要五十匹马
for(var x=0;x<=50;x++){
        //第二个是中马
for(var y=0;y<=100;y++){
          //第三个是小马,题中说每石粮食需要两个小马,但是最多是一百匹马,所以小马最大额度也是一百匹
for(var z=0;z<=100;z++){
if((x+y+z==100)&&(x*2+1*y+z/2==100)){
document.write("大马:&nbsp;&nbsp;&nbsp;"+z+"中马&nbsp;&nbsp;&nbsp;"+y+"小马&nbsp;&nbsp;&nbsp;"+x+"<br/>");
     
   }
} 
  }
  }

2.某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:
●A和B两人中至少去一人;
●A和D不能一起去;
●A、E和F三人中要派两人去;
●B和C都去或都不去;
●C和D两人中去一个;
●若D不去,则E也不去。
问应当让哪几个人去?

//在这里先列一个方程式,知道,他们,去或不去
 //     a+b=>1;
// a+d!=2;
// a+e+f==2;
// b+c==2 || b+c==0;
// c+d==1;
// d+e==0 || d==1;
for(a=0;a<=1;a++){
for(b=0;b<=1;b++){
for(c=0;c<=1;c++){
for(d=0;d<=1;d++){
for(e=0;e<=1;e++){
for(f=0;f<=1;f++){
                 //把上面的公式,放到条件里
if(a+b>=1 && a+d!=2 && a+e+f==2 && d+c==1 && d==e && b==c){
document.write(a,b,c,d,e,f+"<br/>");
}
}
}
}
}
}
}

3.公园里有一只猴子和一堆桃子,猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的。到第七天的时候,猴子睁开眼发现只剩下一个桃子。问公园里刚开始有多少个桃子?

//          首先列出数学公式
// 7 6 5 4
// 1 (1+1)*2 (4+1)*2 (10+1)*2
// 最后桃子的个数t
var t=1;
// 循环6天,因为第七天它没有吃
for(var i=1;i<7;i++){
// 由公式得出每天的桃子等于(t+1)*2
t=(t+1)*2;
}
document.write(t);

4.打印以下图形:

●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●

for(i=1;i<=7;i++){
for(j=1;j<=8;j++){
document.write("●");
}
document.write("<br/>")
}


●●
●●●
●●●●
●●●●●

for(i=1;i<=5;i++){
for(j=1;j<=i;j++){
document.write("●");
}
document.write("<br/>")
}

●●●●●
●●●●
●●●
●●

for(i=5;i>=1;i--){
for(j=1;j<=i;j++){
document.write("●");
}
document.write("<br/>")
}

□□□□●
□□□●●
□□●●●
□●●●●
●●●●●

for(i=4;i>=0;i--){
for(j=1;j<=i;j++){
document.write("□");
}
for(f=4;f>=i;f--){
document.write("●");
}
document.write("<br/>")
}
for(i=1;i<=5;i++){
for(j=5;j>=1;j--){
if(j<=i){
document.write("1")
}else{
document.write("2")
}
}
document.write("<br/>")
}

5.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?

//和小马同理
for(x=0;x<=6;x++){
for(y=0;y<=50;y++){
for(z=0;z<=20;z++){
if(15*x+2*y+5*z==100){
document.write("洗发水:&nbsp;&nbsp;&nbsp;"+x+"香皂:&nbsp;&nbsp;&nbsp;"+y+"牙刷:&nbsp;&nbsp;&nbsp;"+z+"<br/>")}
}
}
}

6.五个小朋友排成一队。问第一个多大了,第一个说比第二个大两岁,问第二个,第二个说比第三个大两岁,以此类推。问第五个小朋友几岁了,第五个小朋友说3岁了。问第一个小朋友几岁?

//首先我们给最后一个小朋友的年龄赋值为x

var x=3;
for(i=1;i<5;i++){//总共有五个小朋友,因此循环五次
x=x+2//他们之间每个相差两岁,所以加2
}
document.write(x+"<br/>")

7.九九乘法表

document.write("<table border=1px style='border-collapse:collapse'>")      //这里是表格边框
for(i=9;i>=1;i--){//用来控制外层循环变量,表示循环几行
       document.write('<tr>')
          for(j=1;j<=i;j++){//用来控制内层循环变量,表示循环几列
           document.write('<td>')
            document.write(j+'x'+i+'='+(j*i))
           }
        } document.write("</table>");

8.打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
 例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

//首先我做的是三位数内的水仙花数,大家可以做很多
for(var x=1; x<=9; x++){//这里是百位数,9是最大的数字,因此上限是9
for(var y=0; y<=9; y++){//这里是十位数
for(var z=0; z<=9; z++){//个位数
if(x*x*x+y*y*y+z*z*z == ""+x+y+z){//后面的值,也可以写成 x*100+y*10+z
document.write(""+x+""+y+""+z+"<br/>");
}
}
}
}

9.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问几年后有多少对兔子,幼兔、小兔、成兔对数分别是多少。

//写这道题时,大家可以用数学方式先列一个方程   
yt xt ct
第一个月 1 0 0
第二个月 0 1 0
第三个月 1 0 1
从这个方式里就可以看出,从第二个月开始,yt=ct;ct=ct+xt;xt=yt; 我们先写十个月的兔子

var yt,xt,ct;
for(i=1;i<=10;i++){//这里循环的事月份
if(i==1){//当第一个月时,yt=1对
yt=1;
xt=0;
ct=0;
}else{//在这里一定要注意先写,ct.因为,yt是跟着ct的.如果没有ct.也就没有yt
ct=xt+ct;
xt=yt;
yt=ct;
}
document.write("第" + i +"个月:成兔" + ct + "对&nbsp;&nbsp;&nbsp;" + "小兔" +xt+ "对&nbsp;&nbsp;&nbsp;" + "幼兔" +yt+"对&nbsp;&nbsp;&nbsp;"+"<br/>");
}

 

10. 凑钱1,2,5凑20元钱有多少种可能?

//这里和小马的方式,是一样的
for (var x=0;x<=20;x++){
for(var y=0;y<=10;y++){
for(var z=0;z<=4;z++){
if(x*1+y*2+z*5==20){
document.write("1元:&nbsp;&nbsp;&nbsp;"+x+"两元:&nbsp;&nbsp;&nbsp;"+y+"五元:&nbsp;&nbsp;&nbsp;"+z+"<br>");
}
}
}
}

11.百求和

sum=0;
for(var i=1;i<=100;i++){
sum+=i;
}
document.write(sum);
document.write('<br/>');

12.奇数求和

sum=0;
for(var i=1;i<=100;i+=2){
sum+=i;
}
document.write(sum);
document.write('<br/>');

13.偶数求和

sum_2=0;
for(var i=2;i<=100;i+=2){
sum_2+=i;
}
document.write(sum_2);
document.write('<br/>');
上一篇:C#-面向对象的三大特性——继承


下一篇:把这两天遇到的码(e)农(xin)题记下来