摘要:
题意:给出S(S>0)位置某一个到迭代,问是否存在N使得1~N这些数字相加减(每个数字只使用一次)能得到S。分析:1+..+NS需要把一些数字改成负的,改1则总和减少2,改2则总和减少4……用这种方式可以构成所有的0到1+..+N之间的与1+..+N差为偶数的数字。如果差小于等于N*2则可以直接通过一个数字的变号得到,如果大于N*2则先将N变号,然后迭代为N-1的子问题。一定某一个位置之后可以用一个数字的变号解决,因为一直迭代下去,变成负号的数字过多,会造成式子计算结果为负数。所以只要总和-S为偶数即可构成,如果不是偶数则N需要增加。View Code #include #include 阅读全文
posted @ 2011-06-10 23:56
undefined2024
阅读(304)
评论(0)
推荐(0)

浙公网安备 33010602011771号