1. 程式人生 > >JSK-25 兩數之和【暴力】

JSK-25 兩數之和【暴力】

兩數之和

給定一個數組 numberi,找到兩個數,使得他們的和為一個給定的數值 target。

其中:number[index1]+number[index2]==target。

注意:index1必須小於 index2 且不能為 0。假設每一組輸入只有唯一的一組解。

例如,對於陣列 [2,7,11,15] 和 target=9,index1 的值為 1,index2 的值為 2。

輸入格式

第一行輸入一個整數 n(1≤n≤500),接下來的兩行分別輸入 n 個整陣列成的陣列 numberi(0≤numberi≤1000) 和一個整數 target(0≤target≤1000)。

輸出格式

輸出一行由空格分隔的兩個整數 index1和 index2。注意,下標從 1 開始

樣例輸入

3
5 75 25
100

樣例輸出

2 3

問題描述:(略)

問題分析

  這個題用暴力法來實現。通俗地說是暴力法,也就是列舉法。

程式說明

  為了保證不充分比較,並且滿足題意的要求,控制好迴圈就可以了。

參考連結:(略)

題記:暴力法是常用的方法。

AC的C語言程式如下:

/* JSK-25 兩數之和 */

#include <stdio.h>

#define N 500
int a[N];

int main(void)
{
    int n, target, i, j;

    scanf("%d", &n);
    for(i = 0; i < n; i++)
        scanf("%d", &a[i]);
    scanf("%d", &target);

    int flag = 1;
    for(i = 0; flag && i < n; i++)
        for(j = i + 1; j < n; j++)
            if(a[i] + a[j] == target) {
                printf("%d %d\n", i + 1, j + 1);
                flag = 0;
                break;
            }

    return 0;
}