一、编程1
1、题目描述(大概描述):
n是数组长度(0<=n<=10^9),m是数组中翻转正负的间隔数;数组中的基本元素是由1,2,3,4,5....组成的。
且满足n能被2m整除,即n%2m=0
求数组中元素的和
示例:
8 2
8
即:数组应该是[-1,-2,3,4,-5,-6,7,8]
2、思路:
第1,2....i..个数,i除以m=商...余数;将商和余数组成float型,向上取整,取完整后与2取模,看结果是奇数,还是偶数。
凡是得出奇数的i,对应的值是负数;偶数的,对应值是正的。
3、代码:
import math
if __name__=='__main__':
s=raw_input()
while s:
nm=[int(i) for i in s.split()]
res=[]
chushu=2*nm[1]
if nm[0]%chushu==0:
for i in range(1,nm[0]+1):
shag=divmod(i,nm[1])
a=str(shag[0])
b=str(shag[1])
shag=[a,b]
shag=math.ceil(float('.'.join(shag)))
if shag%2==1:
res.append(-1*i)
else:
res.append(i)
print res
print sum(res)
break
else:
s=raw_input()
continue;
运行结果:
4、结果分析:
通过测试数据30%
超出了规定的内存范围;
5、反馈:
最后欢迎大家指正,与反馈!期待.....
二、编程2
目前,没有做....