1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# 用for - in语句实现下面的编程题目

# 初级
# 1.求1-100之间可以被7整除的数的个数
# 2.计算从1到100以内所有奇数的和。
# 3.计算从1到100以内所有能被3或者17整除的数的和。


# 4.计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数。
count = 0
for i in range(1, 101):
if (i%7==0 or i%3==0) and i%21!=0:
count += 1
print(count) # 39


# 5.计算1到500以内能被7整除但不是偶数的数的个数。
count = 0
for i in range(1, 501):
if i%7==0 and i%2!=0:
count += 1
print(count) # 36


# 中级:
# 1.从键盘输入一个数n,判断是不是一个质数(质数是只能被1和它自身整除的数)
# n = int(input("n:"))
# for i in range(2, n//2+1):
# if n%i == 0:
# print("不是质数")
# break
# else:
# print("是质数")


# 2.求1000以内的水仙花数:水仙花数:一个三位数各个位上的立方之和,等于本身。
# 例如: 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
for i in range(100, 1000):
if (i//100)**3 + (i//10%10)**3 + (i%10)**3 == i:
print(i)


# 3.求2~100之内的素数。【素数:只能被1或本身整除的数】
for n in range(2, 101):

for i in range(2, n // 2 + 1):
if n % i == 0:
break
else:
print("素数:", n)

print()
# 4.优化猜数字游戏
# 计算机出一个1~100之间的随机数由人来猜 random.randint(1, 100)
# 计算机根据人猜的数字分别给出提示: 大一点 / 小一点 / 猜对了,
# 这个过程可以循环进行,当进行5次以上还猜不对的话,则打印:智商余额不足
import random
n1 = random.randint(1, 100)
print("n1:", n1)

# for i in range(5):
# n2 = int(input("你输入的数:"))
#
# if n2 > n1:
# print("小一点")
# elif n2 < n1:
# print("大一点")
# else:
# print("猜对了")
# break
#
# if i == 4:
# print("智商余额不足")
#
# # else:
# # print("智商余额不足")

i = 0
while i < 5:
n2 = int(input("你输入的数:"))

if n2 > n1:
print("小一点")
elif n2 < n1:
print("大一点")
else:
print("猜对了")
break

# if i == 4:
# print("智商余额不足")

i += 1

else:
print("智商余额不足")


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110

''''''
# 1. 输出10行内容,每行的内容都是“*****”。
# 2. 输出10行内容,每行的内容都不一样,第1行一个星号,第2行2个星号,依此类推第10行10个星号。
# 3. 输出9行内容,第1行输出1,第2行输出12,第3行输出123,以此类推,第9行输出123456789。
# 4. 计算10个99相加后的值并输出。
# 5. 计算2的20次方。(要求使用for)
# 6. 计算从1到1000以内所有能被3或者17整除的数的和并输出
# 7. 计算从1到1000以内所有能同时被3,5和7整除的数的和并输出


# 8. 计算从1到100临近两个整数的合并依次输出。
# 比如第一次输出3(1+2),第二次输出5(2+3),最后一次输出199(99+100)。
for i in range(1, 100):
n = i + i+1
print(n)


# 9. 给定一个不大于9的数n,打印nn乘法表
n = 6
for i in range(1, n+1):
for j in range(1, i+1):
print(f'{j}*{i}={i*j} ', end='')
print()


# 10. 给定一个n位(不超过10)的整数,将该数按位逆置,例如给定12345变成54321,12320变成2321.(*****)
# 思路: n=12345
# n%10 => 5
# n//10 =>1234
# n= 1 2 3 4
# n%10 => 4
# n//10 => 123
# ...
n = 12345
# for: 已知遍历次数的一般使用for
# while: 未知遍历次数的一般使用while

# s = ''
s2 = 0
while n:
a = n%10 # 取出个位
n = n//10 # n去掉个位
# print(a, n)
# s += str(a)
s2 = s2*10 + a

# print(s, int(s))
print(s2)

'''
a n
5 1234
4 123
3 12
2 1
1 0
'''


# 11. 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第n次落地时,共经过多少米?(*****)
# 规律:
# 第1次落地: 100
# 第2次落地: 100 + 50*2
# 第3次落地: 100 + 50*2 + 25*2
# 第4次落地: 100 + 50*2 + 25*2 + 12.5*2
# 第5次落地: 100 + 50*2 + 25*2 + 12.5*2 + ...

height = 100
s = 0
n = 4
for i in range(n):
if i == 0:
# print(height)
s += height
else:
# print(height*2)
s += height*2

height = height / 2

print(s)


# 12. 已知 abc+cba=1333, 其中的a,b,c均为一位数,编写一个程序,求出a,b,c分别代表什么数字 (*****)
# 比如: a=3, b=4, c=5
# 345+543==1333
# for a in range(10):
# for b in range(10):
# for c in range(10):

for a in range(10):
for b in range(10):
for c in range(10):
if (a*100 + b*10 + c) + (c*100 + b*10 + a) == 1333:
print(a, b, c)

'''
4 1 9
5 1 8
6 1 7
7 1 6
8 1 5
9 1 4


419 + 914 = 1333
'''