for循环的附加题

1.公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少可能性
  
  公鸡最多50,母鸡最多100,小鸡最多200

          var sum=0;
		for(var i=1;i<51;i++)
		{
			for(var j=1;j<101;j++)
			{
				for(var k=1;k<201;k++)
				{
					if(i*2+j*1+k*0.5==100 && i+j+k==100)
					{
					
						sum=sum+1;	
					}
				}
			}
		}
		alert(sum);

 总结:与上篇凑钱的题有异曲同工之处,同时也要注意的是每种至少一只,买100只;

 

2.羽毛球拍15元,球3元,水2元。200元每种至少一个,有多少可能
  羽毛球拍最多买13个  球最多买66个  水最多买100个

          var sum=0;
		for(var i=1;i<14;i++)
		{
			for(var j=1;j<67;j++)
			{
				for(var k=1;k<101;k++)
				{
					if(i*15+j*3+k*2==200)
					{
						
						sum=sum+1;
					}
				}	
			}	
		}
		alert(sum);

 总结:与凑钱的做法相类似,注意每种至少一个。

    3.折纸:折多少次和珠穆朗玛峰一样高
  1.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米

var hou = 0.0001;
		
		for(var i=1;i>=1;i++)
		{
			hou = hou*2;
			if(hou>8848)
			{
				var	cishu=i;
				break;
			}	
		}
		alert(cishu);

 总结:hou为厚度,找到了它的规律,其中break代表的是跳出全部循环,只要厚度大于8848时,cishu就跳出循环。

 

4.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问8个月后有多少对兔子,幼兔、小兔、成兔对数分别是多少。
  
  幼兔 1 小兔 0   成兔 0  初始值
  幼兔 0 小兔 1 成兔 0  第一个月
  幼兔 1 小兔 0 成兔 1  第二个月
  幼兔 1 小兔 1  成兔 1  第三个月
  幼兔 2 小兔 1 成兔 2  第四个月
  幼兔 3 小兔 2 成兔 3  第五个月
  幼兔 5 小兔 3 成兔 5  第六个月
    8        5     8
    13  8    13
  
  当前月份幼兔 = 上个月的成兔+上月小兔
  当前月份小兔 = 上月幼兔
  当前月份成兔 = 上月成兔+上月小兔

 

var sy = 1;
		var sx = 0;
		var sc = 0;
		
		var ny = 0;
		var nx = 0;
		var nc = 0;
		
		for(var i=0;i<8;i++)
		{
			//当前月份
			ny = sc+sx;     
			nx = sy;       
			nc = sc+sx;    
			
			//把当前月份变成上个月
			var sy = ny; 
			var sx = nx;   
			var sc = nc;   
			
		}
		alert(ny);
		alert(nx);
		alert(nc);

 总结:sy=上个月幼兔;sx=上个月小兔,sc=上个月成兔;ny=现在的幼兔,nx=现在的小兔,nc=现在的成兔;i=0时,就已经相当于是第一个月了,把当前月份变成上个月。

 

posted on 2017-10-20 20:46  左剃头  阅读(250)  评论(0编辑  收藏  举报

导航