2013\National _C_C++_B\2.连续奇数和

小明看到一本书上写着:任何数字的立方都可以表示为连续奇数的和。

比如:

2^3 = 8 = 3 + 5
3^3 = 27 = 7 + 9 + 11
4^3 = 64 = 1 + 3 + … + 15

虽然他没有想出怎么证明,但他想通过计算机进行验证。

请你帮助小明写出 111 的立方之连续奇数和表示法的起始数字。如果有多个表示方案,选择起始数字小的方案。

请严格按照要求,通过浏览器提交答案。
注意:只提交一个整数,不要写其它附加内容,比如:说明性的文字。

双指针

两个指针,和大了就左边走,和小了就右边走。

Code

if __name__ == '__main__':
	target = 111 ** 3
	nums = [i for i in range(1, target, 2)]
	left, right = 0, 1
	while left < right:
		temp = sum(nums[left: right])
		if temp > target:
			left += 1
		elif temp < target:
			right += 1
		else:
			print(nums[left: right])
			break

Answer:371

你可能感兴趣的:(#,蓝桥杯)