Python每日一练(20230321)
目录
1.?两个正整数之间的偶数和??🌟
2. 求列表的平衡点??🌟🌟
3. 分数到小数??🌟🌟
🌟 每日一练刷题专栏?🌟
Golang每日一练 专栏
Python每日一练 专栏
C/C++每日一练 专栏
Java每日一练 专栏
1.?两个正整数之间的偶数和
输入起始和结束的正整数,求其两个正整数之间的偶数和。
出处:
/caseinfo/link/7281b141e5284dcaa930036a38e1ca59
代码:
x1 = input("请输入起始数:")
x2 = input("请输入结束数:")
a = int(x1)
b = int(x2)
sum1 = 0
for i in range(a, b+1):
if i % 2 == 0:
sum1 += i
i += 2
else:
i += 1
sum2 = 0
for i in range(a+1, b):
if i % 2 == 0:
sum2 += i
i += 2
else:
i += 1
print(str(a)+"到"+str(b)+"之间的偶数和(边界是偶数时算这两个边界)是:"+str(sum1))
print(str(a)+"到"+str(b)+"之间的偶数和(边界是偶数时不算两个边界)是:"+str(sum2))
输入输出:
请输入起始数:1
请输入结束数:8
1到8之间的偶数和(边界是偶数时算这两个边界)是:20
1到8之间的偶数和(边界是偶数时不算两个边界)是:12
2. 求列表的平衡点
对于一个整数列表,如果有一个切分位置使其前面的元素之和等于后面的元素之和,就称该位置是平衡点 请编写程序求列表(整数列表)的平衡点,不存在时给出提示。
思路:
1.确定一个位置
2.求在这个位置前面的元素之和,与在这个位置后面的元素之和,做比较,判断是否相等
2.1 怎么求前面元素之和: 假设这个位置是[i],那么前面元素就是[0]~[i-1], 后面元素为[i+1]~[len(list)-1] 进行求和:累加求和
2.2判断是否相等:相等,给出这个平衡位置;不相等,输出“该列表不存在平衡点”
出处:
/caseinfo/link/00947c91acb541e5adb168efb756ad33
?代码:
a=input('请输入一个整数列表:').split(",")
flag=0
for i in range(0,len(a)-1):
s1=0
for m in range(0,i):
s1+=int(a[m])
s2=0
for n in range(i+1,len(a)):
s2+=int(a[n])
if s1==s2:
print('该整数列表存在平衡点,且平衡点为:',a[i])
flag=1
break
if flag==0:
print('该整数列表不存在平衡点')
输入输出:
请输入一个整数列表:1,2,0,3
该整数列表存在平衡点,且平衡点为: 0
3. 分数到小数
给定两个整数,分别表示分数的分子?numerator
?和分母?denominator
,以?字符串形式返回小数?。
如果小数部分为循环小数,则将循环的部分括在括号内。
如果存在多个答案,只需返回?任意一个?。
对于所有给定的输入,保证?答案字符串的长度小于?104
?。
示例 1:
输入:numerator = 1, denominator = 2 输出:"0.5"
示例 2:
输入:numerator = 2, denominator = 1 输出:"2"
示例 3:
输入:numerator = 2, denominator = 3 输出:"0.(6)"
示例 4:
输入:numerator = 4, denominator = 333 输出:"0.(012)"
示例 5:
输入:numerator = 1, denominator = 5 输出:"0.2"
提示:
-2^31 <=?numerator, denominator <= 2^31 - 1
denominator != 0
出处:
/caseinfo/link/83f835aa491e4e4590291c343dce9e5c
?代码:
class Solution(object):
def fractionToDecimal(self, numerator, denominator):
if denominator == 0:
raise ZeroDivisionError("integer division by zero")
if numerator % denominator == 0:
return str(numerator // denominator)
if numerator < 0 and denominator < 0:
numerator, denominator = -numerator, -denominator
u = (numerator < 0) ^ (denominator < 0)
numerator = abs(numerator)
denominator = abs(denominator)
numerator = numerator % denominator
if numerator == 0:
return str(numerator // denominator)
s = str(abs(numerator) // denominator) + "."
q = {}
l = []
while numerator < denominator:
numerator = numerator * 10
l.append(numerator)
q[numerator] = numerator // denominator
numerator = numerator % denominator * 10
while numerator not in q and numerator != 0:
l.append(numerator)
q[numerator] = numerator // denominator
numerator = numerator % denominator
numerator = numerator * 10
for i in range(0, len(l)):
if numerator == l[i]:
s = s + "("
s = s + str(q[l[i]])
if "(" in s:
s = s + ")"
if u:
s = "-" + s
return s
s = Solution()
print(s.fractionToDecimal(numerator = 1, denominator = 2))
print(s.fractionToDecimal(numerator = 2, denominator = 1))
print(s.fractionToDecimal(numerator = 2, denominator = 3))
print(s.fractionToDecimal(numerator = 4, denominator = 333))
print(s.fractionToDecimal(numerator = 1, denominator = 5))
输出:
0.5
2
0.(6)
0.(012)
0.2
🌟 每日一练刷题专栏?🌟
? 持续,努力奋斗做强刷题搬运工!
👍 点赞,你的认可是我坚持的动力!?
🌟?收藏,你的青睐是我努力的方向!?
? 评论,你的意见是我进步的财富!??
Golang每日一练 专栏 | |
Python每日一练 专栏 | |
C/C++每日一练 专栏 | |
Java每日一练 专栏 |