1. 程式人生 > >如何找出數列中符合條件的數對的個數

如何找出數列中符合條件的數對的個數

一個整數陣列,元素取值範圍可能是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; }