您的位置:首页 > 编程语言 > Python开发

学python(02)——关于循环的经典试题理解

2017-12-10 16:16 567 查看
1. 百钱买百鸡

  假如你手上有100块钱,你需要买100只鸡。这个时候你去市场上,发现鸡有三种:母鸡3元一只,公鸡1元一只,小鸡0.5元一只,现在请问你有多少种买法可以把钱花完?

思路:根据题目不难想到,母鸡最多可以买33只(i),公鸡最多可以买100只(j),而小鸡最多也只能买100只(k)(因为只需要买100只鸡)。

    只要三个鸡的数量(变量)能满足共100只(之和为100),并且满足花完100元(乘积之和为100),那么这就算是一种方法。令一个变量numb在打印出一种方法后自增+1,那么,最终打印numb的值即为方法的个数。

答案如下:

 

numb = 0#买鸡的方法个数

for i in range(0,34):#母鸡可以购买的范围

      for j in range(0,101):#公鸡可以购买的范围

            for k in range (0,101):#小鸡可以购买的范围

                  if i*3+j*1+k*0.5==100 and i+j+k==100:#满足题目中的要求

                        print(i,j,k)#打印各种鸡的个数

                        numb += 1#买鸡方法个数

print(numb)#打印出买鸡方法的个数

 结果有2部分,第一部分是买鸡的个数,第二部分为买鸡方法的个数。一共有21种。

跟兄弟连Python学习交流、资源共享群:563626388 QQ

2. 使用循环写出九九乘法表

思路:两个数值都是变化的,并且区间固定,所以生成2个变量,使其都在0~9之间。

当A变量为一个值得时候,使B变量开始循环,并且打印出两个数值的乘积,而且当A=B的时候,停止B的循环并且换行打印,使A开始循环下一个值,然后B再进行一次循环,以此类推……直至A =9,B=9时,打印9*9=81.结束函数

 

答案如下:
for i in range(1,10):  #i取0~9

      for j in range(1,10)  #j取0~9

            result = i * j    #用一个变量表示乘积

            print( i ‘*’ j ‘=’result,end = ‘’)  #打印出乘法表达式,并且使其在一行

            if i = j:

                 print(‘\n’)

                 break    #当i = j 时候,使其换行,并且终止j的循环

             j += 1

i += 1

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息