以下是引用yctchxf在2013-3-31 23:35:06的发言:
我觉得先找连个数相加不是难事。如果找不到,先对基数(开始的一组数) 进行排序,然后遍历基数找出 检测值的位子,就能找出最接近的小数,和最接近的大数。
至于你说8+9和17 两个都在基数中,是不是非得满足这个条件呢?
————————————————等回复——————————————————————————————————————
我觉得先找连个数相加不是难事。如果找不到,先对基数(开始的一组数) 进行排序,然后遍历基数找出 检测值的位子,就能找出最接近的小数,和最接近的大数。
至于你说8+9和17 两个都在基数中,是不是非得满足这个条件呢?
————————————————等回复——————————————————————————————————————
...排序这个方法不错,但怎么设计检测值的位子呢?还发现了一个新问题...
for(i=0;i<N-1;i++)
{
for(j=1;j<N;j++)
{
if(a[i]+a[j]==k)
{
printf("存在两数相加与输入数相等,输出: %d + %d = %d\n",a[i],a[j],k);
exit(0);
}
如果我输入18的话,答案是9+9,题目要求不能自己相加自己的吧,求改进