適合初步練習PAT乙級 (1091) N 自守數

2021-10-02 17:34:56 字數 727 閱讀 3721

如果某個數 k 的平方乘以 n 以後,結果的末尾幾位數等於 k,那麼就稱這個數為「n-自守數」。例如 3×92

​2​​=25392,而 25392 的末尾兩位正好是 92,所以 92 是乙個 3-自守數。

本題就請你編寫程式判斷乙個給定的數字是否關於某個 n 是 n-自守數。

輸入格式:

輸入在第一行中給出正整數 m(≤20),隨後一行給出 m 個待檢測的、不超過 1000 的正整數。

輸出格式:

對每個需要檢測的數字,如果它是 n-自守數就在一行中輸出最小的 n 和 nk

​2​​的值,以乙個空格隔開;否則輸出 no。注意題目保證 n<10。

輸入樣例:

392 5 233

輸出樣例:

3 25392

1 25

no

#include

#include

using

namespace std;

intmain()

}if(flag ==

0)cout <<

"no"

<< endl;

}return0;

}

思路:從1-9列舉,判斷是否存在n,通過to_string把乘積轉成字串,再通過substr取末尾字串比較即可。

這裡要提一下,substr(pos,len)取從pos開始長度為len的字串,若只有pos則表示取從pos到字串結尾。

適合初步練習PAT乙級 (1019) 數字黑洞

給定任乙個各位數字不完全相同的 4 位正整數,如果我們先把 4 個數字按非遞增排序,再按非遞減排序,然後用第 1 個數字減第 2 個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停在有 數字黑洞 之稱的 6174,這個神奇的數字也叫 kaprekar 常數。例如,我們從6767開始,將得到 7...

適合初步練習PAT乙級 (1064) 朋友數

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

適合初步練習PAT乙級 (1067) 試密碼

當你試圖登入某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。輸入格式 輸入在第一行給出乙個密碼 長度不超過 20 的 不包含空格 tab 回車的非空字串 和乙個正整數 n 10 分別是正確的密碼和系統允許嘗試的次數。隨後每行給出乙個以...