+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-04(15)

2020-05(26)

2020-06(45)

2020-07(44)

2020-08(28)

day3分之和循环作业答案

发布于2021-03-07 20:48     阅读(653)     评论(0)     点赞(14)     收藏(4)


0

1

2

3

4

基础题

1.根据输入的成绩的范围打印及格或者不及格

num = int(input("请输入成绩:"))
if 60 <= num <= 100:
    print("及格")
elif 0 <= num < 60:
    print("不及格")
else:
    print("成绩有毒")

2.根据输入的年龄范围打印成年或者未成年,如果年龄不在正常的范围内(0~150)打印这不是人!

age = int(input("请输入年龄:"))
if 0 < age < 18:
    print("未成年")
elif age < 150:
    print("成年")
else:
    print("这不是人!")

3.输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

a = int(input("输入a的值:"))
b = int(input("输入b的值:"))
if (a-b) % 2 != 0:
    print(a-b)
else:
    print("a-b的结果不是奇数")

4.使用for和while循环输出0~100内所有3的倍数。

# 方法1
for i in range(0, 100, 3):
    print(i)
# 方法2
i = 0
while i <= 100:
    print(i)
    i += 3

5.使用for和while循环输出100~200内个位数或者十位数能被3整除的数

# 方法1
for i in range(100, 200):
    if i // 10 % 10 % 3 == 0 or i % 10 % 3 == 0:
        print(i)
# 方法2        
i = 100        
while i <= 200:
    if i // 10 % 10 % 3 == 0 or i % 10 % 3 == 0:
        print(i)
    i += 1

进阶题

1.使用循环计算1*2*3*4*...*10的结果。

# 方法1
num = 1
for i in range(1, 11):
    num *= i
print(num)
# 方法2
num = 1
i = 1
while i <= 10:
    num *= i
    i += 1
print(num)

2.统计100以内个位数是2并且能够被3整除的数的个数。

# 方法1
count = 0
for i in range(0, 100, 3):
    if i % 10 == 2:
        count += 1
        print(i)
print("个数为:", count)
# 方法2
count = 0
i = 0
while i < 100:
    if i % 10 == 2 and i % 3 == 0:
        count += 1
        print(i)
    i += 1
print("个数为:", count)

3.输入任意一个正整数,求他是几位数?

num = int(input("输入一个数字"))
count = 0
while num != 0:
    num = num // 10
    count += 1
print("这是一个", count,"位数")

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

for i in range(100, 1000):
    if (i % 10) ** 3 + (i // 10 % 10) ** 3 + (i // 100 % 10) ** 3 == i:
        print(i)

挑战题

1.判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)

num = int(input("输入数:"))
i = 2
while i < num:
    if num % i == 0:
        print("不是质数")
        break
    if i == num - 1:
        print(num, "是质数")
    i += 1    

2.求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13, 21,34…(这儿的n可以是任意正整数,可以通过输入来确定)

n = int(input("请输入n的值:"))
a1 = 1 		# 斐波那契第一个数字
a2 = 1		# 斐波那契第二个数字
n -= 2
# 将数列进行分割,按奇偶数操作
if n % 2 == 0:
    count = int(n / 2)
    for i in range(count):
        a1 += a2
        a2 += a1
    print(a2)
else:
    count = int((n+1) / 2)
    for i in range(count):
        a1 += a2
        a2 += a1
    print(a1)
    

3.输出9*9口诀。程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

for i in range(1, 10):
    for j in range(1, i+1):
        print(i, "*", j, "=", i * j, end=" ")
    print("")
        

4.这是经典的“百马百担”问题,有一百匹马,驮一百担货,大马驮三担,中马驮2担,两只小马驮一担,问有大,中,小马各几匹?

# import sympy
# x,y = sympy.symbols("x y")
# a = sympy.solve([5x - 3y - 100],[x,y])
# # 解出 x = (100 - 3y) / 5
for i in range(100):		# 令y == i中马为y匹
    middleHorse = i			# 中马数量
    bigHorse = (100 - 3 * middleHorse) / 5	 # 大马数量
    smallHorse = 80 -  2 * middleHorse / 5	 #
    if bigHorse % 1 == 0 and smallHorse % 2 == 0 and bigHorse * 3 + 2 * i + smallHorse / 2 == 100 and bigHorse >= 0 and smallHorse >= 0:
        print("大马的数量为:", bigHorse, "中马的数量为:", middleHorse, "小马的数量为:", smallHorse)

'''   程序结果
大马的数量为: 20.0 中马的数量为: 0 小马的数量为: 80.0
大马的数量为: 17.0 中马的数量为: 5 小马的数量为: 78.0
大马的数量为: 14.0 中马的数量为: 10 小马的数量为: 76.0
大马的数量为: 11.0 中马的数量为: 15 小马的数量为: 74.0
大马的数量为: 8.0 中马的数量为: 20 小马的数量为: 72.0
大马的数量为: 5.0 中马的数量为: 25 小马的数量为: 70.0
大马的数量为: 2.0 中马的数量为: 30 小马的数量为: 68.0

Process finished with exit code 0
'''

原文链接:https://blog.csdn.net/qq_39842253/article/details/114381346

0

1

2

3

4

5

6

7



所属网站分类: 技术文章 > 博客

作者:小姐姐抱抱我

链接: https://www.pythonheidong.com/blog/article/879771/89649495b00be98c2493/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

14 0
收藏该文
已收藏

评论内容:(最多支持255个字符)