1、实现保留3位有效数字(四舍六入五成双规则)(数学,算法)
贡献者:weixin_45782673
输入:1234 输出:1234 12 12.0 4 4.00 0.2 0.200 0.32 0.320 1.3 1.30 1.235 1.24 1.245 1.24 1.2451 1.25
选项代码:
a = input()
if '.' in a:
a = float(a)
if a*1000%10!=5:
a = '%.2f'%(a)
else:
if len(str(a).split(".")[1])>3:
a = '%.2f'%(a)
else:
if int(a*100%10%2)==1:
a = float('%.2f'%float(int(a*100)/100))+0.01
else:
a = '%.2f'%float(int(a*100)/100)
print(a)
else:
a = int(a)
if a>99:
print(a)
else:
if 0 < a < 10:
print('%.2f'%a)
else:
print(float(a))
2、用Python来创造一个提示用户输入数字的乘法表?(贪心)
贡献者:Light_1009
如果用户选择菜单选项1,提示用户输入1到10之间的整数,并打印一个乘法表,显示整数1与输入整数相乘的结果,如下面的示例所示。注意:不需要检查输入的数字是否在1到10之间。如果用户选择菜单选项2,退出程序。如果用户在菜单选择中输入了1或2以外的任何内容,输出信息“菜单选择错误,请重试并继续程序。” 结果应该如下: 1)创建乘法表 2)退出程序 请从以上菜单中选择一个选项:1 输入一个介于1到10之间的整数:3
1 2 3
2 4 6
3 6 9
1)创建乘法表 2)退出程序 请从以上菜单中选择一个选项:4 菜单选择错误,请重试 1)创建乘法表 2)退出程序 请从以上菜单中选择一个选项:2 谢谢你使用乘法表
选项代码可参考:
Python|位运算|递归|贪心|字符串|动态规划|单选记录:2 的幂|用Python来创造一个提示用户输入数字的乘法表|不同的子序列_打酱油的工程师的博客-CSDN博客
3、最小路径和(数组,动态规划)
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步。
示例:
示例 1:
输入:grid = [[1,3,1],[1,5,1],[4,2,1]]
输出:7
解释:因为路径 1→3→1→1→1 的总和最小。
示例 2:
输入:grid = [[1,2,3],[4,5,6]]
输出:12
提示:
- m == grid.length
- n == grid[i].length
- 1 <= m, n <= 200
- 0 <= grid[i][j] <= 100
代码模板:
class Solution(object):
def minPathSum(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
height = len(grid)
if height == 0:
return 0
width = len(grid[0])
pathmap = []
for i in range(height):
pathmap.append([100000000000] * width)
pathmap[0][0] = grid[0][0]
for i in range(height):
for j in range(width):
compare = [pathmap[i][j]]
if i - 1 >= 0:
compare.append(pathmap[i - 1][j] + grid[i][j])
if j - 1 >= 0:
compare.append(pathmap[i][j - 1] + grid[i][j])
pathmap[i][j] = min(compare)
return pathmap[-1][-1]
# %%
s = Solution()
print(s.minPathSum(grid = [[1,2,3],[4,5,6]]))