Python 100练习 — Day 5 构造程序结构

本文以GitHub上100天python从新手到大师为素材,规划为约100天的练习,每次的学习和总结均发在这里。有错误的地方还请朋友们指正。

前言

在前面我们已经学了语言元素、分支结构和循环结构,虽然学得不多,但已经可以解决一些现实问题。这一期我们通过三天所学的知识来解决一些经典问题。

练习1 寻找水仙花数

所谓水仙花数是指一个三位数字,每位数字的立方和等于它自身,例如
153 = 13 + 53 + 33

我的代码如下:

from math import pow
for i in range(100,1000):
	#利用整除、取余来获取每一个位数#
    if pow((i//100),3) + pow((i%100)//10,3) + pow((i%10),3) == i:
        print(i)

官方代码如下:

for num in range(100, 1000):
    low = num % 10
    mid = num // 10 % 10
    high = num // 100
    if num == low ** 3 + mid ** 3 + high ** 3:
        print(num)
练习2:正整数的反转

将任一正整数反转,例如123反转为321

我的代码如下:

"""
正整数的反转
"""
num_1 = int(input("输入一个正整数"))
flag = True
revers_num = "" #初始化接受反转数字#
while flag:
    revers_num += str(num_1 % 10) #不断取个位#
    num_1 = num_1 // 10 #将个位去掉#
    if num_1 == 0:
        print(revers_num)
        flag = False

官方代码如下:

"""
正整数的反转

Version: 0.1
Author: 骆昊
"""

num = int(input('num = '))
reversed_num = 0
while num > 0:
    reversed_num = reversed_num * 10 + num % 10
    num //= 10
print(reversed_num)
练习3 百钱百鸡问题

这个问题是我国古代算经中的一道问题,大概意思是公鸡5元钱1只,母鸡3元钱一只,小鸡1元钱3只。问怎么样买是100元买100只鸡。

我的代码如下:

for i in range(0,20): #公鸡最多买20只#
    for j in range(0,33): #母鸡最多买33只#
        for k in range(0,100): #小鸡最多买100只#
            if 5*i + 3*j + k/3 == 100 and i + j + k == 100:
            	#确保钱数等于100元并且小鸡也是100只#
                print("公鸡买%d只,母鸡买%d只,小鸡买%d只" % (i, j, k))

这道题假设公鸡买了 x x

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值