Python:每日一题 321
本帖最后由 zltzlt 于 2020-2-1 16:23 编辑今天的题目:
给定一个正整数 n,求有多少组连续正整数满足其所有数字之和为 n。
示例 1:
输入:5
输出:2
解释:5 = 5 = 2 + 3,共有两组连续整数 (、) 求和后为 5。
示例 2:
输入:9
输出:3
解释:9 = 9 = 4 + 5 = 2 + 3 + 4
示例 3:
输入:15
输出:4
解释:15 = 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5
{:10_298:}欢迎大家一起答题!{:10_298:} 没高亮? 阴阳神万物主 发表于 2020-2-1 16:20
没高亮?
点错了,点成了【解除高亮】。 def a(num):
if num <1:
print('参数需为正整数!')
return None
n = 1
b = []
b.append(num)
while n <= num/2:
c = []
total = 0
i = n
total += i
c.append(i)
while total < num:
i += 1
total += i
c.append(i)
if total == num:
b.append(c)
n += 1
print('共有 %d 组连续整数 %r 求和后为 %d'%(len(b), b, num))
f-wind 发表于 2020-2-1 16:26
def a(num):
if num
输入 8500000 超时。 a = eval(input())
count = 0
sum = 0
t = 1
for j in range(1,a+1):
for i in range(t,a+1):
sum = sum + i
if sum==a:
count += 1
break
elif sum>a:
break
if(a-j):
t = j+1
sum = 0
print(count)
不知道对不对 最后的魁拔 发表于 2020-2-1 16:34
输入 8500000 超时。 前排占位,已经有想法,18:00之前能写完 zltzlt 发表于 2020-2-1 16:21
点错了,点成了【解除高亮】。
什么叫高亮? 一个账号 发表于 2020-2-1 16:40
什么叫高亮?
这个你不用管 zltzlt 发表于 2020-2-1 16:40
这个你不用管
明白了,帖子变成蓝色的。 def f321(n):
res=0
if n&1:
for e in range(1,n+1):
if e&1:
if not n%e:
if n>e**2/2:
res+=1
else:
break
else:
if not (2*n)%e:
if n>e**2/2-1:
res+=1
else:
break
else:
for e in range(1,n+1):
if e&1:
if not n%e:
if n>e**2/2:
res+=1
else:
break
return res
最近懒得合并 def fun(n):
i = 2
count = 1
while n >= i * (i + 1) // 2:
if i % 2 ==0:
if 2 * n % i == 0:
count +=1
else:
count +=1
i += 1
return count 冬雪雪冬 发表于 2020-2-1 16:55
解答错误
输入:8
输出:3
预期结果:1 塔利班 发表于 2020-2-1 16:50
最近懒得合并
解答错误
输入:68
输出:1
预期结果:2 本帖最后由 Croper 于 2020-2-1 17:08 编辑
def func321(n):
ret=0
m=int(((8*n+1)**0.5+1)//2)
for i in range(1,m):
if (n*2)%i!=0:continue
ret+=1&(i^(n*2//i))
return ret Croper 发表于 2020-2-1 17:06
100 ms zltzlt 发表于 2020-2-1 16:35
输入 8500000 超时。
请问8500000的答案是啥呢 最后的魁拔 发表于 2020-2-1 17:12
请问8500000的答案是啥呢
14 zltzlt 发表于 2020-2-1 17:12
14
好的,谢谢