给定n个正整数(1<=n<=100),把这n个数用+或-连起来求出结果,设计一算法使结果接近0

[复制链接]
查看11 | 回复2 | 2011-6-6 23:36:15 | 显示全部楼层 |阅读模式
这n个数在0到100之间(含0或100)

回复

使用道具 举报

千问 | 2011-6-6 23:36:15 | 显示全部楼层
如果有四个数 n-3、n-2、 n-1、 n那么只要(n、n-3)为正 (n-2、n-1)为负相加结果就为0if(n % 4 == 0)n%4 =1 和 n%4 = 0之前用+号 其余用-号 结果是0 (*)if(n % 4 == 1)由于n*(n+1)/2 是奇数,所以结果只能是1或者-1,把1取出来,剩n-1个数同(*)
操作,再在1前面加+或者-if(n % 4 == 2)由于n*(n+1)/2 是奇数,所以结果只能是1或者-1,把1和2取出来,剩下的数同(*)操作,再在1和2前面加不同的号(如1前面-号,2前面+号)if(n % 4 == 3)把1、2、3取出来,剩下的数...
回复

使用道具 举报

千问 | 2011-6-6 23:36:15 | 显示全部楼层
比如 是这几个数(由小到大排列),1.首尾两数相加,2.然后 减去相邻的首尾两数之和,可以得到几组差值,3.最后将差值加起来例如 a b c d e f g h
(由小到大排列)计算方法:(a+h)-(b+g)+ (c+f)-(d+e)其余的以此类推~...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行