不是说while就不用,比如前面所列举而得那个猜数字游戏,在业务逻辑上,用while就更容易理解(当然是限于那个游戏的业务需要而言)。另外,在某些情况下,for也不是简单地把对象中的元素遍历一遍,比如有有隔一个取一个的要求,等等。
在编写代码的实践中,为了对付循环中的某些要求,需要用一些其它的函数,比如前面已经介绍过的range就是一个被看做循环中的计数器的好东西。
range
在《有容乃大的list(4)》中,专门对range()这个内置函数做了详细介绍,看官可以回到那节教程复习一番。这里重点
完美解决在oj中Python的循环输入问题
这几天做题被python的循环输入问题给烦死了,好好查了一下,记录在此。
while True:
t= sys.stdin.readline().strip()
if len(t)==0: #判断是否为空串 ,使用t==""也可以
break
t= int(t)
nums=[int(i) for i in sys.stdin.readline().strip().split(' ')]
res = getDiff(t,num
问题:
一只刚出生的小牛,4年后生一只小牛,以后每年生一只。现有一只刚出生的小牛,问20年后共有牛多少只?
思路:
这种子生孙,孙生子,子子孙孙的问题,循环里面还有循环的嵌套循环,一看就知道是第归问题。
于是乎,第一个版本出现:
public long Compute1(uint years)
{
//初始化为1头牛
long count = 1;
if (years <= 3)
{
return count;
}
int i = 4;
whi