PAT乙級 1064 朋友數

2021-10-25 04:23:41 字數 1348 閱讀 4773

問題描述

如果兩個整數各位數字的和是一樣的,則被稱為是「朋友數」,而那個公共的和就是它們的「朋友證號」。例如 123 和 51 就是朋友數,因為 1+2+3 = 5+1 = 6,而 6 就是它們的朋友證號。給定一些整數,要求你統計一下它們中有多少個不同的朋友證號。

輸入格式

輸入第一行給出正整數 n。隨後一行給出 n 個正整數,數字間以空格分隔。題目保證所有數字小於104

10^4

104。

輸出格式

首先第一行輸出給定數字中不同的朋友證號的個數;隨後一行按遞增順序輸出這些朋友證號,數字間隔乙個空格,且行末不得有多餘空格。

樣例輸入

8123 899 51 998 27 33 36 12

樣例輸出

43 6 9 26

???

誒我就不明白了,這樣例輸出裡的3是怎麼來的……以下的**是錯誤的,但我還是貼上來了,請大佬指正?

c++**

#include

using

namespace std;

intasum

(int x)

return sum;

}int

main()

;for

(int i=

0;i) cin>>a[i]

;for

(int i=

0;i1;i++

)for

(int j=i+

1;j(asum

(a[i])==

asum

(a[j]

)&&num[

asum

(a[i])]

==0) cout

for(

int i=

0;i<

90000

;i++)}

return0;

}

tips

寫著寫著突然發現了對付這種【數字間隔乙個空格,且行末不得有多餘空格】的好方法:

(不是每個 i 都輸出,輸出條件是與exp1有關)

int f=0;

for(

int i=

0;i)}

如果是每個 i 都輸出用這個:

for

(int i=

0;i)

PAT 乙級 1064 朋友數

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 如果兩個整數各位數字的和是一樣的,則被稱為是 朋友數 而那個公共的和就是它們的 朋友證號 例如123和51就是朋友數,因為1 2 3 5 1 6,而6就是它們的朋友證號。...

PAT 乙級 1064 朋友數

題目 輸入樣例 8 123899 51998 2733 3612 輸出樣例 436 926原題鏈結 思路 因為數最大只有4位,4位的和最大為36,所以建乙個長度大於36的陣列用來存各個朋友證號的個數,輸入完後,把陣列中對應個數不為0的陣列下標按要求輸出即可。注意 值得注意的是,這題的題目有點兒坑,我...

PAT 乙級 1064 朋友數

如果兩個整數各位數字的和是一樣的,則被稱為是 朋友數 而那個公共的和就是它們的 朋友證號 例如 123 和 51 就是朋友數,因為 1 2 3 5 1 6,而 6 就是它們的朋友證號。給定一些整數,要求你統計一下它們中有多少個不同的朋友證號。輸入第一行給出正整數 n。隨後一行給出 n 個正整數,數字...