求指定和的整数对

2021/11/1 6:12:09

本文主要是介绍求指定和的整数对,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

注意数组下标 别忘了i,j的重置

还没过

#include <stdio.h> 
#define N 100000

int cmp(const void*a, const void*b)
{
	return *(int*)a - *(int*)b;
}
int main() 
{
	int n,a[N],flag;
	long int m;
	scanf("%d",&n);
	for(int i=0; i<n; i++)
	{
		scanf("%d",&a[i]);
	}
	scanf("%ld",&m);
	
	qsort(a,n,sizeof(a[0]),cmp);
	//printf("%d\n",a[0]);
	for(int k=0; k<n; k++)
	{
	   int i=k+1,j=n-1;
		while(i<=j)
	  {
		int mid = (i+j)/2;
		long int sum = a[k]+a[mid];
		if(sum == m) 
		{
			printf("%d %d",a[k],a[mid]); flag = 1; break;
		}
		else if(sum > m) j = mid-1;
		else i = mid + 1;
	  }
	  if(flag) break;
	} 
	if(!flag) printf("No");

 return 0; 
} 



这篇关于求指定和的整数对的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程