题目一
解答
思路:把感兴趣的数字当做一个字符串,将1-40的数转化为字符与字符串比较,使用for循环1-n个数,查看是否在字符串内,如果在就将他进行加和。
str()函数:将整型数字转化为字符串的形式。
题目二
解答
感觉这个题思路比较简单,就是卡在了百分数的转化。同时要注意60-85区间的if语句,不能只写<60,否则当>85时下面一个if也不会执行。
百分数的表达:
1.{:.2%}、{:.1%}、{:.0%} :其中的0、1、2表示显示小数点后几位
例如:print('{:.0%}'.format(a/b))
2.{:.2f}% :需要先格式化为float,在处理为百分数
例如:print('{:.2f}%'.format(a/b*100))
区别:第二种方式将%放在{}之外,但是format中的数需要*100
题目三
解答:
写麻了这个题....刚开始只想用一个二维数组实现并且一直觉得他是对的,将n×m的方格设为值全为0的二维数组,使用for循环将水管处的值设为1,在套用3层循环每分钟遍历一次方格,将值为1的方格周围存在的值都变为1。
如果只使用一个二维数组,就会导致在一个方格将周围值变为1 后,在这个方格后面遍历的变为1的周围的方格会提前喷发,导致结果变大,所以必须引入一个新的数组,将每次变为一的方格单独存储到新的数组中。最后遍历数组中值为1的方格进行加和。
知识点:
二维数组的表示:a = [[0 for in range(m)] for in range(n)]
其中n是行数,m是列数。
同时在一行输入多个数:r,c = map(int,input().split())
2022.11.6记