如果某個數 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 分別是正確的密碼和系統允許嘗試的次數。隨後每行給出乙個以...