PAT 乙級 1091 N 自守數 15 分

2021-10-19 11:17:14 字數 1614 閱讀 3178

三、ac**

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

22=25392

3 \times 92^=25392

3×922=

2539

2,而 25392

25392

2539

2 的末尾兩位正好是92

9292

. 所以 92

9292

是乙個3-自守數

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

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

nn 和 nk2

nk^nk

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

輸入樣例:

392 5 233

輸出樣例:

3 25392

1 25

no

例如:

92有2位,則用 25392%100就可得到最後兩位。

獲取最後n位就除以10n

10^10

n所以我們要先獲取輸入的數字是幾位數

//...

int temp=n;

int count=0;

//獲取該數的位數

while

(temp>0)

//獲取n的位數

輸入有n位,則除數為

for

(int i=

0;i)

注意:

題目保證 n<10,所以我們只需迴圈到10即可,否則樣例 233會出錯.

(233也是自守數,但是返回值不在範圍內)

輸出的是「no」,不要寫成"no";

返回自守係數j.

for

(int j=

1;j<

10;j++

)}

#include

#include

using

namespace std;

intzishou

(int n)

;int

main()

}int

zishou

(int n)

for(

int i=

0;i)for

(int j=

1;j<

10;j++)}

return-1

;//如果該數不是自守數,或者是自守數但是返回的數字不在<10的範圍內,就返回乙個-1;

PAT乙級 1091 N 自守數

問題描述 如果某個數 k 的平方乘以 n 以後,結果的末尾幾位數等於 k,那麼就稱這個數為 n 自守數 例如 3 9 22 25392 3 92 2 25392 3 922 2539 2,而 25392 的末尾兩位正好是 92,所以 92 是乙個 3 自守數。本題就請你編寫程式判斷乙個給定的數字是否...

PAT乙級 1091 N 自守數 (15 分)

如果某個數 k 的平方乘以 n 以後,結果的末尾幾位數等於 k,那麼就稱這個數為 n 自守數 例如 3 922 25392,而 25392 的末尾兩位正好是 92,所以 92 是乙個 3 自守數。本題就請你編寫程式判斷乙個給定的數字是否關於某個 n 是 n 自守數。輸入在第一行中給出正整數 m 20...

PAT 乙級 1091 N 自守數 (15 分)

如果某個數 k 的平方乘以 n 以後,結果的末尾幾位數等於 k,那麼就稱這個數為 n 自守數 例如 3 92 2 25392,而 25392 的末尾兩位正好是 92,所以 92 是乙個 3 自守數。本題就請你編寫程式判斷乙個給定的數字是否關於某個 n 是 n 自守數。輸入在第一行中給出正整數 m 2...