

# 01. [整数]1000.先做再听

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 1. 导言须知

- **学习方法：**

  - 数理解题课程，先暂停视频，自己先花10-20分钟思考做做看，然后再听解析效果最佳；
  - 本套课程属于前期最入门的精选100道题目，需要学完《Python入门核心》1-36课；
  - 《Python入门核心》37课之后，主要是软件开发库、游戏开发库和面向对象部分，可选学习；
  - 题库网址为：https://oj.czos.cn/，大家先行注册。

  

- **课程规划：**

  - 按照知识点分布，一般分为6个阶段，入门核心的语法基础归类在前两个阶段；
  - 可以在题库网址的题单中查看，我们选择序号为1-8中精心挑选100道题目；
  - 本课程规划学生年级范围：小学5年级+





### 2. map()多输入

> 由于之前学习的 **input()** 只支持单一数据输入，如果要多条数据，需要map()函数

```python
# 通过map()函数进行多数据输入
a,b = map(int, input().split())
print(a + b)
```











# 02. [整数]1311.分跳绳

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>



### 代码详解

```python
# 获取m,n
m,n = map(int, input().split())
# 整除得到分得几个班
a = m // n
# 求余得到剩下多少
b = m % n
# 按格式要求输出
print("%d %d"%(a, b))
```













# 03. [整数]**1416**.求周长和面积

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
a,b = map(int, input().split())
# 周长：(长+宽) x 2
print((a+b)*2)
# 面积：长 x 宽
print(a*b)
```











# 04. [整数]1599.米老鼠偷糖果

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n,a,x = map(int, input().split())
# 总数 - 每次数量 * 次数
print(n - a * x)
```











# 05. [整数]1597.买文具

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
x,y,n = map(int, input().split())
# 笔 2 * 1
# 橡皮 1 * 1
print(n - x * 1 - y * 1)
```











# 06. [整数]1323.扩建花圃问题

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
m,n,s = map(int, input().split())
# 求高度
h = int(s / n)
# 求原面积
print(h * m)

# 这道题目判定测试点上，要注意，先要把高度取整，否则其它测试点可能数据会错
# 但C++不会有问题，Python会出错
```









# 07. [整数]1320.时钟旋转

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
m,n = map(int, input().split())
# 一圈360度，一圈12时
# 一时：360 / 12
a = 360 // 12
print((n - m) * a)
```













# 08. [整数]1462.小明的游泳时间

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
a,b,c,d = map(int, input().split())
# 将时间段转换成分钟
# 用第二时间段减去第一时间段
e = (c * 60 + d) - (a * 60 + b)
print(e // 60, e % 60)
```













# 09. [小数]1031.温度转换

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
c = int(input())
# 套用公式
f = 9 / 5 * c + 32
# 格式化输出
print("%.2f"%f)
```







# 10. [小数]1602.总分和平均分

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
x,y,z = map(int, input().split())
# 总和
sum = x + y + z
# 求出平均数
avg = sum / 3
# 格式化输出
print("%d"%sum)
print("%.1f"%avg)
```













# 11. [小数]1598.文具店的折扣

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
x,y,n = map(int, input().split())
# 笔 1 * 2 橡皮 1 * 1 花花 5 打9折
a = (1 * x + 1 * y) * 0.9
b = n - a
# 这里需要强制保留一位
# 可能会有其它隐藏测试点验证错误导致无法解题成功
print("%.1f"%b)
```















# 12. [小数]1601.挖胡萝卜

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
x = int(input())
# 狐狸
a = x * 3
# 小羊
b = a - 8
# 输出
print(a)
print(b)
print("%.1f"%((x+a+b) / 3))
```















# 13. [小数]1337.求花坛的面积

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
x = float(input())
# 圆周率
pi = 3.14
# 半径 = 周长 / 2 / 3.14
r = x / pi / 2
# 面积
print("%.2f"%(pi * r**2))
```











# 14. [小数]1338.求圆环的面积

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
r1,r2 = map(int, input().split())
a1 = r1**2 * 3.14
a2 = r2**2 * 3.14
print("%.2f"%(a1 - a2))
```















# 15. [小数]1317.求内角的度数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
# 套用公式
print("%.1f"%((n-2)*180 / n))
```













# 16. [小数]1565. 成绩（score）

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
a,b,c = map(int, input().split())
print("%d"%(a*0.2 + b*0.3 + c*0.5))
```













# 17. [小数]1345. 玫瑰花圃

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
# 求总方块数
total = n**2
# 求粉色数量，公式为：n + (n-1) + 4
# 一行一列粉，去掉重复1，加四个角
pink = n+n+3
# 比例，%号转义需要两个
print("%.1f%%"%(pink / total * 100))
```













# 18. [拆位]1605.求个位和十位和

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
# 求个位
a = n % 10
# 求十位
b = n // 10
print(a+b)
```













# 19. [拆位]1606.求两位数倒序结果

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
# 求个位
a = n % 10
# 求十位
b = n // 10
print(a*10+b)
```











# 20. [拆位]1028.三位数个十百对调

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
x = int(input())
# 百
a = x // 100
# 十
b = x // 10 % 10
# 个
c = x % 10
print(a + b * 10 + c * 100)
```















# 21. [拆位]1029.倒序输出四位整数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
a = int(input())
qian = a // 1000
bai = int(a / 100 % 10)
shi = int(a / 10 % 10)
ge = a % 10

b = ge * 1000 + shi * 100 + bai * 10 + qian
print(b)
```













# 22. [拆位]1109.加密四位数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
a = int(input())
# 千
qian = (a // 1000 + 5) % 10
# 百
bai = (a // 100 % 10 + 5) % 10
# 十
shi = (a // 10 % 10 + 5) % 10
# 个
ge = (a % 10 + 5) % 10

print("%d%d%d%d"%(ge, shi, bai, qian))
```











# 23. [分支.双]1033.判断奇偶数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
a = int(input())
if a % 2 == 0:
    print("y e s")
else:
    print("n o")
```











# 24. [分支.双]1632.需要几辆车

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```Python
# 输入学生总数
n = int(input())
# 大巴数
a = 0
# 学生总数除以30的余数为0时
if n % 30 == 0:
    a = n // 30
else:
    a = n // 30 + 1
print(a)
```











# 25. [分支.双]1043.行李托运价格

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
# 费用
s = 0
# 判断重量
if n <= 10:
    s = 2.5
else:
    # 10公斤2.5，大于10公斤的部分 * 1.5
    s = 2.5 + (n - 10) * 1.5
    
# 保留两位小数
print("%.2f"%s)
```













# 26. [分支.双]1034.两数比大小

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
a,b = map(int, input().split())
# 判断大小
if a > b:
    print(a)
else:
    print(b)
```











# 27. [分支.双]1624.超市的折扣

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
a,b,c = map(float, input().split())
# 总数
sum = a + b + c
# 判断
if a + b + c >= 200:
    print("%.1f"%(sum * 0.8))
else:
    print("%.1f"%(sum * 0.9))
```











# 28. [分支.双]1626.暑假的旅游计划

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
x,y,z = map(float, input().split())
avg = (x + y + z) / 3
if avg >= 90:
    print("beijing")
else:
    print("nanjing")
```













# 29. [分支.双]1628.三位数是否对称

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
num = int(input())
shi = num // 100
bai = num % 10

# 判断
if shi == bai:
    print("Y")
else:
    print("N")
```









# 30. [分支.多]1044.最经济型的包装箱

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())

# 判断
if n < 10:
    print("A")
elif n >= 10 and n < 20:
    print("B")
elif n >= 20 and n < 40:
    print("C")
elif n >= 40 and n < 50:
    print("D")
elif n >= 50 and n < 80:
    print("E")
```











# 31. [分支.多]1039.求三个数的最大数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
a,b,c = map(int, input().split())
m = 0
# 判断
if a > b and a > c:
    m = a
elif b > a and b > c:
    m = b
else:
    m = c
print(m)
```











# 32. [分支.多]1300.小明暑假的零花钱

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
s = 0
# 判断
if n >= 90:
    s = n * 3
elif n >= 80 and n < 90:
    s = n * 2
elif n >= 70 and n < 80:
    s = n
elif n < 70:
    s = 50
    
print(s)
```











# 33. [分支.多]1049.汉译英

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
# 判断
if n == 1:
    print("one")
elif n == 2:
    print("two")
elif n == 3:
    print("three")
elif n == 4:
    print("four")
elif n == 5:
    print("five")
elif n == 6:
    print("six")
elif n == 7:
    print("seven")
elif n == 8:
    print("eight") 
elif n == 9:
    print("nine") 
else:
    print("out")
```











# 34. [分支.多]1667.最大数和最小数差

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
# 位
bai = n // 100
shi = n // 10 % 10
ge = n % 10
# 最大最小
big = 0
small = 0

# 判断最大
if bai > shi and bai > ge:
    big = bai
elif shi > ge:
    big = shi
else:
    big = ge
    
# 判断最小
if bai < shi and bai < ge:
    small = bai
elif shi < ge:
    small = shi
else:
    small = ge
    
print(big - small)
```













# 35. [分支.多]1310.要买几瓶止咳糖浆

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
# 年龄
n = int(input())
# 总量
s = 0

# 判断
if n > 10:
    # 天数 x 剂量 x 次数
    s = 5 * 25 * 3
elif n>= 7 and n <= 10:
    s = 5 * 15 * 3
elif n>= 3 and n <= 6:
    s = 5 * 5 * 3
    
# 求天数
t = s // 120
if s % 120 != 0:
    print(t + 1)
else:
    print(t)
```











# 36. [循环]1881.循环1~100每个数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
# 遍历到1-100
for i in range(1, 101):
    print(i)
```













# 37. [循环]1696.1~n之间所有整数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
for i in range(1, n + 1):
    print(i)
```











# 38. [循环]1700.所有2位数含2整数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
# 循环两位数
for i in range(10, 100):
    # 提取个位和十位
    ge = i % 10
    bai = i // 10
    # 判断是否有2
    if ge == 2 or bai == 2:
        print(i)
```











# 39. [循环]1701.输出所有3位对称数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
# 循环3位数
for i in range(100, 1000):
    # 提取百位和个位
    bai = i // 100
    ge = i % 10
    # 输出符合标准的
    if bai == ge:
        print(i)
```

















# 40. [循环]1711.满足条件的整数1

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```php
# 循环10-100
for i in range(10,100):
    # 获取十位 个位
    shi = i // 10
    ge = i % 10
    # 条件一
    if shi > ge and (shi + ge) % 2 == 0:
        print(i)
```















# 41. [循环]1715.满足条件的整数5

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
# 循环1000-9999
for i in range(1000, 10000):
    # 获取个十百千位
    qian = i // 1000
    bai = i // 100 % 10
    shi = i // 10 % 10
    ge = i % 10
    
    # 判断
    if (qian + bai) % 2 == 0 and (shi + ge) % 2 != 0 and (qian + bai) > (shi + ge) and i % 8 == 0:
       print(i) 
```















# 42. [循环]1722.输出两位的巧数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```php
# 循环10-99
for i in range(10, 100):
    # 十位，个位
    shi = i // 10
    ge  = i % 10
    
    # 判断巧数
    if (shi + ge) + (shi * ge) == i:
        print(i)
```













# 43. [循环]1017.求零件个数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
# 循环100-200
for i in range(100, 200):
    # 判断
    if i % 3 == 2 and i % 5 == 3 and i % 7 == 5:
        print(i)
        break
```

















# 44. [循环]1058.求所有水仙花数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```php
# 循环100-999
for i in range(100, 999):
    # 百十个位
    bai = i // 100
    shi = i // 10 % 10
    ge  = i % 10
    
    # 判断
    if bai * bai * bai + shi * shi * shi + ge * ge * ge == i:
        print(i)
```















# 45. [循环]1466.等差数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
# 范围
m,n = map(int, input().split())

# 循环100-9999
for i in range(m, n + 1):
    # 默认当四位数处理
    qian = i // 1000
    bai = i // 100 % 10
    shi = i // 10 % 10
    ge  = i % 10
    
    # 判断三位，如果是三位数，qian一定是0
    if qian == 0:
        # 判断等差数
        if bai - shi == shi - ge:
            print(i)
        
    # 判断四位
    elif
        # 判断等差数
        if qian - bai == bai - shi == shi - ge:
            print(i)
```















# 46. [计数]1393.与7无关的数？

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
# 总和
sum = 0
# 循环
for i in range(1, n + 1):
    # 剔除能被7整除和包含7的
    bai = i // 100
    shi = i // 10 % 10
    ge = i % 10
    
    # 判断
    if i % 7 == 0:
        continue
    elif bai == 7 or shi == 7 or ge == 7:
        continue
    else:
        sum += i
        
print(sum)
```













# 47. [计数]1745.纯粹的五位偶数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
sum = 0
#循环10000-n
for i in range(10000, n + 1):
    wan = i // 10000
    qian = i // 1000 % 10
    bai = i // 100 % 10
    shi = i // 10 % 10
    ge = i % 10
    
    if wan % 2 == 0 and qian % 2 == 0 and bai % 2 == 0 and shi % 2 == 0 and ge % 2 == 0:
        sum += 1
        
print(sum)
```













# 48. [计数]1747.连续递增递减

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
# 总和
sum = 0
# 个数
num = 0
# 循环
for i in range(100, n + 1):
    # 位
    bai = i // 100
    shi = i // 10 % 10
    ge  = i % 10
    
    # 判断连续递增递减
    if bai < shi < ge or bai > shi > ge:
        sum += i
        num += 1
        
print(sum)
print(num)
```















# 49. [图形]1067.平行四边形

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())

# 循环
for i in range(1, n + 1):
    print(" "*(i - 1) + "*"*n)
```

















# 50. [图形]1784.数字直角3

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())

# 递减循环
for i in range(n, 0, -1):
    for j in range(1, i + 1):
        print(j, end="")
    print("")
```

















# 51. [图形]1071.星号菱形

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())

# 上半部
for i in range(1, n + 1):
    # 输出空格
    print(" "*(n - i + 1), end="")
    # 输出星号
    print("*"*(i * 2 - 1), end="")
    # 换行
    print("")

# 下半部
for i in range(1, n + 1 + 1):
    # 输出空格
    print(" "*(i - 1), end="")
    # 输出星号
    print("*"*((n * 2 + 1) - (i * 2 - 2)), end="")
    # 换行
    print("")
```













# 52. [图形]1492.空心正方形

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())

# 循环n次
for i in range(1, n + 1):
    # 输出n次*
    if i == 1 or i == n:
        print("*"*n)
    else:
        # 空心设置
        for j in range(1, n + 1):
            if j == 1 or j == n:
                print("*", end="")
            else:
                print(" ", end="")
        print("")
```













# 53. [图形]1493.放大的Z

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())

# 循环n
for i in range(1, n + 1):
    # 1和n输出
    if i == 1 or i == n:
        print("*"*n)
    else:
        # 输出Z
        print(" "*(n - i), end="")
        print("*", end="")
        print("")
```













# 54. [嵌套]1246.n行9x9乘法表

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())

# 循环9
for i in range(1, n + 1):
    for j in range(1, i + 1):
        print("%d*%d=%d"%(i, j, i*j), end=" ")
    print("")
```















# 55. [嵌套]1019.求1!+2!+...+N!

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
sum = 0
# 循环n
for i in range(1, n + 1):
    # 循环
    temp = 1
    for j in range(1, i + 1):
        temp *= j
        
    # 累加
    sum += temp
    
print(sum)
```

















# 56. [嵌套]1495.求因子数量

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())

# 循环n
for i in range(1, n + 1):
    # 循环因子
    temp = 0
    for j in range(2, i):
        # 判断因子
        if i % j == 0:
            temp += 1
    print(temp)
```













# 57. [while]1062.求落地次数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
# while
m = 100
count = 0
while m > 0.5:
    # m减去当前的一半
    m = m / 2
    # 统计次数
    count += 1
    
print(count)
```



















# 58. [while]1261.韩信点兵

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = 0
# 死循环
while True:
    # 累加
    n += 1
    
    # 判断
    if n % 5 == 1 and n % 6 == 5 and n % 7 == 4 and n % 11 == 10:
        print(n)
        break
```



















# 59. [短除]1254.求车速

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
m = 95859

# 死循环
while True:
    m += 1
    
    temp = m
    new = 0
    while temp != 0:
        # 95861
        # 第一次：new = 1 temp = 9586
        # 第二次：new = 16 temp = 958
        # 第三次：new = 168 temp = 95
        # 第四次：new = 1685 temp = 9
        # 第五次：new = 16859 temp = 0
        new = new * 10 + temp % 10
        temp = temp // 10
        #print("new: %d, temp：%d，m：%d"%(new, temp, m))
    
    # 判断
    if new == m:
        print((m - 95859) // 2)
        print(m)
        break
```































# 60. [短除]1750.有0的数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>





### 代码详解

```python
n = int(input())
count = 0
for i in range(1, n + 1):
    temp = i
    while temp != 0:
        # 假设为102, 先得到10
        # 然后10，再除以10余0，说明含有0
        # 如果是100，短除法不会像拆位那样验证两次
        if temp % 10 == 0:
            count += 1
            break
        temp = temp // 10
            
print(count)
```











# 61. [短除]1469.数的统计

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n,x = map(int, input().split())
count = 0
for i in range(1, n + 1):
    temp = i
    # 短除法来统计
    while temp != 0:
        if temp % 10 == x:
            count += 1
        temp = temp // 10
        
print(count)
```















# 62. [短除]1846.阿尔法乘积

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
x = int(input())
# 循环
while x >= 10 :
    # 乘积变量
    temp = 1
    
    while x > 0:
        # 得到个位
        g = x % 10
        # 去掉个位
        x = x // 10
        
        # 非零乘积
        if g != 0:
            temp = temp * g
            
    # 将乘积再交给x
    x = temp
    
print(x)
```















# 63. [穷举]1351.买公园门票

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
# 假设只有一张儿童票，那么：(40-3)/8
# 循环，按最多成人票来循环
for i in range(1, (40-3)//8 + 1):
    # 这里循环可得到成人票4张，1张儿童票，需要花费32+3 = 35
    #print(i)
    
    # 开始穷举：每次循环一张成人票，来判断剩下的钱是否能够整除儿童票的价格，即倍数
    x = 40 - i * 8
    if x % 3 == 0:
        print("%d %d"%(i, x / 3))
```















# 64. [穷举]1227.阿凡提的难题

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n, big, small = map(int, input().split())

# 大碗小碗都要买，那买2个小碗 = 2 * small，剩下全买大碗
# 大碗小碗的购买的量都必须是偶数
# 循环n偶数步长，假设 n是100 20 = 80 / 20 = 4 + 1
for i in range(2, (n - 2 * small) // big + 1, 2):
    # 第一次循环，获取买了2个大碗后剩下的钱
    # 第二次循环，获取买了4个大碗后剩下的钱
    x = n - i * big
    
    # 判断剩下的钱买小碗是否为倍数(全部花光)
    # 还必须是偶数的小碗
    if x % small == 0 and x / small % 2 == 0:
        print(i, x // small)
```















# 65. [穷举]1349.植树的人数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
# 循环
# 甲组17人，每次抽一个人过去，递减
a = 25
for i in range(17 - 1, 0, -1):
    # 第一次循环，抽过去1人，a乙队26人，i甲队16人
    # 第二次循环，抽过去1人，a乙队27人，i甲队15人
    a += 1
    
    # 判断
    if a / i == 2:
        # 抽过去的人数
        print(17 - i)
        break
```

















# 66. [穷举]1396.开学大采购？

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n, x, y = map(int, input().split())

# 排球篮球都必须买，假设排球y买一个
# 循环n 假设 n = 1000, x = 25 y = 15 即循环range(1, 40)
for i in range(1, (n - y) // x + 1):
    # 第一次循环：1000 - 1 * 25 = 975，买一个篮球剩下的钱
    # 剩下的钱买排球，看看是不是倍数（钱要花完）
    # 然后再判断，排球+篮球的数量是否大于50
    temp = n - i * x
    if temp % y == 0 and (i + temp // y) > 50:
        print(i, temp // y)
```

















# 67. [穷举]1025.兑换硬币

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = 100
count = 0
# 用5分来循环
for i in range(1, (n - 2 - 1) // 5 + 1):
    # 嵌套2分循环
    for j in range(1, (n - 5 - 1) // 2 + 1):
        # 按1分来计算组合数
        if (n - 5 * i  - 2 * j) >= 1:
            count += 1
            
print(count)
```















# 68. [穷举]1249.搬砖问题

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = 36

# 循环男
for i in range(1, n - 1 - 1 + 1):
    # 循环女
    for j in range(1, n - 1 - 1 + 1):
        # 通过小孩来组合
        x = n - i - j
        # 正好=36块砖
        if x / 2 + i * 4 + j * 3 == 36:
            print(i, j, x)
```















# 69. [数组]1423.考试成绩统计

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
# 数量
n = int(input())
# 给数组赋值
array = list(map(int, input().split()))
count = 0

# 循环列表，列表下标是从0开始的，所以直接(0, n)
for i in range(0, n):
    if array[i] >= 90:
        count += 1
        
print(count)
```















# 70. [数组]1153.查找“支撑数”

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
# 数量
n = int(input())
# 给数组赋值
array = list(map(int, input().split()))

# 循环，去掉收尾
for i in range(1, n - 1):
    # 判断
    if array[i] > array[i - 1] and array[i] > array[i + 1]:
        print(array[i])
```













# 71. [数组]1156.排除异形基因

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = int(input())
# 给数组赋值
array = list(map(int, input().split()))

# 循环
for i in range(0, n):
    # 判断
    if array[i]**2 % 7 == 1:
        continue
    else:
        print(array[i], end=" ")
```















# 72. [数组]1354.拿到某数的概率？

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = int(input())
# 给数组赋值
array = list(map(int, input().split()))
# 确定概率的值
x = int(input())
count = 0
# 循环
for i in range(0, n):
    # 判断
    if array[i] == x:
        count += 1
        
# 概率
print("%.2f"%(count / n))
```













# 73. [数组]1426.年龄与疾病

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = int(input())
# 给数组赋值
array = list(map(int, input().split()))
# 概率字典，0表示病人个数
s = {
    "a" : 0,
    "b" : 0,
    "c" : 0,
    "d" : 0
}

# 循环
for i in range(0, n):
    # 判断
    if array[i] >= 0 and array[i] <= 18:
        s["a"] += 1
    elif array[i] >= 19 and array[i] <= 35:
        s["b"] += 1
    elif array[i] >= 36 and array[i] <= 60:
        s["c"] += 1
    elif array[i] >= 61:
        s["d"] += 1
        
        
# 遍历字典
for i in s.values():
    print("%d %.2f%%"%(i, i / n * 100))
```













# 74. [数组]1168.歌唱比赛评分

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = int(input())
# 给数组赋值
array = list(map(int, input().split()))

# 最大最小值初始
max = -1
min = 11
s = 0

# 循环
for i in range(0, n):
    # 求最小值
    if array[i] < min:
        min = array[i]
        
    # 求最大值
    if array[i] > max:
        max = array[i]
        
    # 累加和
    s += array[i]
    
print("%.2f"%((s - max - min) / (n - 2)))
```















# 75. [数组]1428.找同学的位置

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = int(input())
# 给数组赋值
array = list(map(int, input().split()))

# 最大最小值初始
max = 0
min = 101
max_index = 0
min_index = 0

# 循环
for i in range(0, n):
    # 最小值
    if array[i] < min:
        min = array[i]
        min_index = i
        
    # 最大值
    if array[i] > max:
        max = array[i]
        max_index = i
        
print(max_index + 1, min_index + 1)
```











# 76. [数组]1217.排队做操迟到

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n,x,y = map(int, input().split())
# 给数组赋值
array = list(map(int, input().split()))

# 循环n
for i in range(0, n):
    # 判断
    print(array[i], end=" ")
    if array[i] == x:
        print(y, end=" ")
```

















# 77. [数组]1814.卖苹果最大利润

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
m, x, n = map(int, input().split())
array = list(map(int, input().split()))

max = -1
max_index = 0

# 循环
for i in range(0, n):
    # 判断
    if array[i] > max:
        max = array[i]
        max_index = i + 1
        

print(max_index, (max * m) - (x * m))
```















# 78. [数组]1584.马里奥花银币

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = int(input())
# 给数组赋值
array = list(map(int, input().split()))

# 直接函数求最小值和最大值，求和
min_v = min(array)
max_v = max(array)
sum_v = sum(array)

# 花掉的金额
a = max_v

# 循环
for i in range(0, n):
    # 判断
    if array[i] == min_v:
        a += array[i]
        
print(a)
print(sum_v - a)
```



















# 79. [数组]1458.粉碎数字

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = int(input())
# 给数组赋值
array = list(map(int, input().split()))

# 0-9的统计数组
#s = [0,0,0,0,0,0,0,0,0,0]
s = [0 for _ in range(9 + 1)]

# 循环n
for i in range(0, n):
    temp = array[i]

    while temp != 0:
        #获取个位
        g = temp % 10
        s[g] += 1

        # 去掉个位
        temp = temp // 10

for i in range(9, -1, -1):
    for j in range(s[i]):
        print(i, end="")
```















# 80. [数组]1180.数字出现次数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
# 给数组赋值
array = list(map(int, input().split()))
# 统计数组
s = [0 for _ in range(20)]

# 循环
for i in range(0, 50):
    s[array[i]] += 1
    
print(max(s))
```

















# 81. [数组]2029.缺失的数字

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = int(input())
# 给数组赋值
array = list(map(int, input().split()))

# 创建一个统计数组
s = [0 for _ in range(n + 1)]

# 循环n
for i in range(0, n - 2):
    s[array[i]] += 1

# 找数
for i in range(1, n + 1):
    if s[i] == 0:
        print(i, end=" ")
```













# 82. [数组]1118.既生瑜,何生亮

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
x, y = map(int, input().split())

# 循环
for i in range(x, y + 1):
    #短除
    temp = i ** 2
    
    s = []
    
    # 将数字拆位写入数组
    while temp != 0:
        s.append(temp % 10)
        temp = temp // 10
        
    
    # 列表的set方法去除重复
    if len(set(s)) == len(s):
        print(i)
```

















# 83. [sqrt]1084.因子求和

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
import math
n = int(input())
sum = 0

'''
for i in range(2, n):
    if n % i == 0:
        sum += i
        
'''

# 范围用开平方缩短
for i in range(2, int(math.sqrt(n)) + 1):
    if n % i == 0:
        if n // i == i:
            sum += i
        else:
            sum = sum + i + n // i

print(sum)
```



















# 84. [sqrt]1253.寻找肇事司机

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
import math

# 循环四位数
for i in range(1000, 10000):
    # 拆位
    qian = i // 1000
    bai = i // 100 % 10
    shi = i // 10 % 10
    ge  = i % 10
    
    # 开平方
    temp = int(math.sqrt(i))
    
    # 判断
    if qian == bai and shi == ge and qian != shi and temp**2 == i:
        print(i)
```















# 85. [函数]1862.友好数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
# 函数
def sum(n):
    # 累加变量
    temp = 0
    
    for i in range(1, n + 1 - 1):
        if n % i == 0:
            temp += i
            
    return temp

# 输入
x, y = map(int, input().split())

# 判断
if sum(x) == y and sum(y) == x:
    print("yes")
else:
    print("no")

```















# 86. [函数]1512.甲乙的年龄

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
# 1.甲+乙 = 两位数 10~99之间
# 2.甲>乙 = 13，甲至少13
# 3.甲+乙 是 一个质数，并且每个数字的和 = 13
# 4.43 + 56 = 99

# 是否质数
def isZ(n):
    # 1和自身之外，无法被整除
    for i in range(2, n):
        if n % i == 0: return False
        
    return True
    
# 是否数字之和
def isS(n):
    shi = n // 10
    ge  = n % 10
    
    if shi + ge == 13:
        return True
    else:
        return False


# 循环乙
for i in range(0, 43 + 1):
    sum = i + i + 13
    # 两个不得大于100
    if sum < 100:
        #print("甲：%d, 乙：%d"%(i+13, i))
        # 求质数，求数字之和
        if isZ(sum) and isS(sum):
            print(i+13, i)
```















# 87. [字符串]1967.输出ascii码

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
# Ascii码：美国信息交换用标准代码
# 可以在计算机中用数字来表示字符的一种编码
# A的编码为65 Z为90，那么A-Z就是65-90
# a的编码为97 z为122，那么a-z就是97-122

# ascii码有两个互换函数：ord() 和 chr()

# 注意，这里输入的A等字符，不要习惯性加int了，它是字符
x = input()
# ord 将字符转换为Ascii码
print(ord(x))
```















# 88. [字符串]1971.大小写转换

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
# 得到大小写字母排位的差值 32
s = ord("a") - ord("A")

# 小写字母的范围：65-90
# 大写字母的范围：97-122

x = input()

if ord(x) >= 97 and ord(x) <= 122:
    print(chr(ord(x) - s))
else:
    print(chr(ord(x) + s))
```















# 89. [字符串]1101.时间的差

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
x = input()
y = input()

# 换算秒函数
def fn(s):
    temp = s.split(":")
    return int(temp[0]) * 60 * 60 + int(temp[1]) * 60 + int(temp[2])
    

print(fn(x) - fn(y))
```















# 90. [字符串]1387.简单加密

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
x = input()

for i in range(len(x)):
    if x[i] >= "F" and x[i] <= "Z":
        temp = chr(ord(x[i]) - 5)
    elif x[i] >= "A" and x[i] <= "E":
        temp = chr(ord(x[i]) + 21)
    else:
        temp = x[i]
    print(temp, end="")
```















# 91. [字符串]1102.字符空格移位

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
# 输入一串字符
x = input()

# 不确定长度，需要判断长度，用len(x)
for i in range(0, len(x)):
    if (x[i] == " "):
        print(" ", end="")
        
for i in range(0, len(x)):
    if (x[i] != " "):
        print(x[i], end="")
```















# 92. [字符串]1116.调换位置

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
x = input()
array = x.split(",")

print(array[1]+","+array[0])
```















# 93. [字符串]1012.我是第几个单词

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
x = input()
s = input()
array = x.split(" ")

# 检查 s 是否存在array里
if s in array:
    print(array.index(s) + 1)
elif s+"." in array:
    print(array.index(s+".") + 1)
else:
    x = "".join(array)
    print(len(x) - 1)
```















# 94. [字符串]1107.求英文最长单词

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
x = input()
array = x.split(" ")

max = -1
index = 0

# 循环
for i in range(len(array)):
    # 判断
    if len(array[i]) > max:
        max = len(array[i])
        index = i
        
        
# 输出
print(array[index])
```















# 95. [字符串]1130.简单a+b

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
x = input()

a = x.split("+")[0]
b = x.split("+")[1].split("=")[0]

print(int(a) + int(b))
```

















# 96. [字符串]1114.趣味填空

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
x = input()
s = x.split("=")
a = int(s[0])
b = int(s[1])
g = ""
f = False
# 短除
while a != 0:
    # 获取被截位
    # 1234 4  34 234
    g = int(str(a % 10) + str(g))
    
    
    # 去掉个位
    # 1234  123  12  1  0
    a = a // 10
    
    # 判断
    if a + g == b:
        f = True
        break
        
if f == True:
    print("%d+%d=%d"%(a,g,b))
else:
    print("Impossible!")
```















# 97. [二维]1272.郭远摘苹果

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n,m = map(int, input().split())

# 初始化二维
line = [[0]*m]*n

# 循环赋值
for i in range(n):
    line[i] = list(map(int, input().split()))

# 初始化最大最小值
min = max = line[0][0]

# 嵌套循环对比
for i in range(n):
    for j in range(m):
        # 求最小值
        if line[i][j] < min:
            min = line[i][j]

        # 求最大值
        if int(line[i][j]) > max:
            max = line[i][j]


print(max - min)
```

















# 98. [二维]1190.对角线I

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = int(input())

# 初始化二维
line = [[0]*n]*n

# 输出方阵
for i in range(n):
    for j in range(n):
        temp = 0
        if i == j: temp = 1
        print("%3d"%temp, end="")
    print("")
```

















# 99. [二维]1384.靶心数

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n,m = map(int, input().split())

# 初始化二维
line = [[0]*m]*n

# 循环赋值
for i in range(n):
    line[i] = list(map(int, input().split()))
    

# 判断
# 第一行：[0,0] [0,1] [0,2] [0,3]
# 第二行：[1,0] [1,1] [1,2] [1,3]
# 第三行：[2,0] [2,1] [2,2] [2,3]
# 第四行：[3,0] [3,1] [3,2] [3,3]

for i in range(1, n - 1):
    for j in range(1, m - 1):
        # 判断，提交不支持 \ 换行
        if line[i][j] > line[i-1][j] and \ 
           line[i][j] > line[i][j-1] and \
           line[i][j] > line[i+1][j] and \
           line[i][j] > line[i][j+1]:
               
               print(line[i][i])
```



















# 100. [二维]1199.拐角IV

<div style="text-align:right;color:#666;font-size:20px;">主讲老师 - 李炎恢</div>







### 代码详解

```python
n = int(input())

# 初始化二维
line = [[0]*n]*n

# 输出方阵
for i in range(n):
    for j in range(n):
        temp = j + 1
        if j < i: temp = i + 1
        print("%3d"%temp, end="")
    print("")
```

















