如何找出數列中符合條件的數對的個數
阿新 • • 發佈:2019-01-08
一個整數陣列,元素取值範圍可能是1~N中的任意一個數,相同數值不會重複出現。設計一個演算法,找出數列中符合條件的數對的個數,滿足數對中兩數的和等於N+1;
程式碼
#include <stdio.h>
void FixedSum(int* a,int n,int d){
for(int i = 0,j = n-1;i<n&&j>=0&&i<j;){
if(a[i]+a[j]<d)
++i;
else if(a[i]+a[j]>d)
--j;
else if(a[i]+a[j]==d){
printf("%d,%d\n",a[i],a[j]);
++i;
--j;
}
}
}
int main(){
int array[] ={1,2,3,4,5};
int len = sizeof(array)/sizeof(array[0]);
FixedSum(array,len,6); //1,5 2,4
return 0;
}