珠心算測驗

2021-10-24 20:38:28 字數 1438 閱讀 8936

某學校的珠心算老師採用一種快速考察珠心算加法能力的測驗方法。他隨機生成乙個正整數集合,集合中的數各不相同,然後要求學生回答:其中有多少個數,恰好等於集合中另外兩個(不同的)數之和?

最近老師出了一些測驗題,請你幫忙求出答案。

輸入共兩行,第一行包含乙個整數nn,表示測試題中給出的正整數個數。 第二行有nn個正整數,每兩個正整數之間用乙個空格隔開,表示測試題中給出的正整數。

輸出乙個整數,表示測驗題答案。

樣例輸入 copy

412

34

樣例輸出 copy

2
提示

由1+2=3,1+3=4,故滿足測試要求的答案為2。 注意:加數和被加數必須是集合中的兩個不同的數。

n <= 1000,集合中所有的數字保證小於等於1e7.

法一:採用三重for迴圈,理論上是正確的,但是會超時。

#include

using

namespace std;

intmain()

for(

int i=

0;i}}

cout

}

法二:先對元素排序,再找出有多少個數,恰好等於集合中另外兩個(不同的)數之和。

#include

using

namespace std;

void

merge_array

(int array,

int first,

int mid,

int last,

int temp)

//歸併

else

}while

(i<=mid)

while

(j<=last)

for(

int i=

0;i) array[first+i]

=temp[i];}

void

merge_sort

(int data,

int first,

int last,

int temp)

//歸併排序,是所有輸入元素從大到小排序

}int

main()

else

if(a[j]

+a[k]

)break;}

}}cout

}

注意:對於下面這組資料:

512

345

可能不注意審題,就將2+3=5和1+4=5算成兩個了,其實題目中說的是「集合中有多少個數,恰好等於集合中另外兩個(不同的)數之和?」而不是「集合中有多少對資料加和等於集合中的另外乙個數」,所以這組資料對應的正確輸出應該是3,而不是4.

珠心算測驗

題目 來自 題目描述 description 珠心算是一種通過在腦中模擬算盤變化來完成快速運算的一種計算技術。珠心算訓練,既能夠開發智力,又能夠為日常生活帶來很多便利,因而在很多學校得到普及。某學校的珠心算老師採用一種快速考察珠心算加法能力的測驗方法。他隨機生成乙個正整數集合,集合中的數各不相同,然...

珠心算測驗

題目描述 珠心算是一種通過在腦中模擬算盤變化來完成快速運算的一種計算技術。珠心算訓練,既能夠開發智力,又能夠為日常生活帶來很多便利,因而在很多學校得到普及。某學校的珠心算老師採用一種快速考察珠心算加法能力的測驗方法。他隨機生成乙個正整數集合,集合中的數各不相同,然後要求學生回答 其中有多少個數,恰好...

珠心算測驗

珠心算是一種通過在腦中模擬算盤變化來完成快速運算的一種計算技術。珠心算訓練,既能夠開發智力,又能夠為日常生活帶來很多便利,因而在很多學校得到普及。某學校的珠心算老師採用一種快速考察珠心算加法能力的測驗方法。他隨機生成乙個正整數集合,集合中的數各不相同,然後要求學生回答 其中有多少個數,恰好等於集合中...