参考链接:
华为OD机试真题-用连续自然数之和来表达整数-2023年OD统一考试(C卷)—python代码免费
参考代码:
"""
input int
output:
输出最短的表达式
eg:
9=4+5
"""
# 优化
import math
while True:
t = int(input())
temp_list = list()
for i in range(1, math.ceil(t/2)+1):
a = (t-i*(i-1)//2)//i
# 添加a 大于0
if a > 0 and t == i*a + i*(i-1)/2:
temp_list.append([a+z for z in range(i)])
if len(temp_list) > 1:
# print(temp_list[1])
print(f"{t}={'+'.join(map(str, temp_list[1]))}")
else:
print("N")