您的位置:首页 > 其它

给定一个数组和一个数字,给定的数组里是否存在两个数字之和等于给定的数字

2014-10-19 19:29 337 查看
/*
2014-10-19
by 不吃青瓜
*/

/*
原题大概意思:

给定一个数组a[10],数据范围 1-15
另外给定一个数字 x,范围 2-10
问是否能在数组 a 中找到两个数字的和等于 x
*/

#include<stdio.h>

bool findIt(int *arr , int n, int x)
{
int temp[16];
int i;

for( i=0;i<16;i++)
temp[i]=0;

for( i=0;i<n;i++)
temp[arr[i]]++;

for( i=1;i<x/2;i++)
{
if(temp[i]!=0 && temp[x-i]!=0)
return true;
}
if(x%2==0)
if(temp[x/2]>1)
return true;

return false;
}

int main()
{
int arr[10]={6,5,3,2,4,8,9,5,4,14};
int x = 10;
if(findIt(arr,10,3))
printf("YES\n");
else printf("NO\n");

getchar();
getchar();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐