和為s的兩個數字

2021-07-05 02:26:10 字數 1020 閱讀 2897

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。 

輸出描述:

對應每個測試案例,輸出兩個數,小的先輸出。

#include using namespace std;

bool twonumberwithsum(int* data, int length ,int s, int *num1, int *num2)

else if(sum > s)

else

}return found;

}

// ********************測試**********************

void test(char* testname, int data, int length, int sum, bool expectedreturn)

else

printf("passed. \n");

}else

printf("failed. \n");

}// 存在和為s的兩個數字,這兩個數字位於陣列的中間

void test1()

; test("test1", data, sizeof(data) / sizeof(int), 15, true);

}// 存在和為s的兩個數字,這兩個數字位於陣列的兩段

void test2()

; test("test2", data, sizeof(data) / sizeof(int), 17, true);

}// 不存在和為s的兩個數字

void test3()

; test("test3", data, sizeof(data) / sizeof(int), 10, false);

}// 魯棒性測試

void test4()

int main(int argc, char* argv)

和為S的兩個數字

題目描述 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸入 每個測試案例包括兩行 第一行包含乙個整數n和k,n表示陣列中的元素個數,k表示兩數之和。其中1 n 10 6,k為int 第二行包含n個整數,每個陣列均為i...

和為S的兩個數字

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出描述 對應每個測試案例,輸出兩個數,小的先輸出。class solution public vectorfindnumberswithsum vectorarray,i...

和為S的兩個數字

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出描述 對應每個測試案例,輸出兩個數,小的先輸出 思路 數列滿足遞增,設兩個頭尾兩個指標i和j,若ai aj sum,就是答案 相差越遠乘積越小 若ai aj sum,a...