k尾相等數問題
描述乙個自然數k(
2≤k),若存在自然數m和
n(m大於
n),使得
k^m和
k^n均大於或等於
1000
,且它們的末尾三位數相等,則稱m和
n是一對
「k尾相等數」。
輸入輸入包含若干個測試用例,每個測試用例佔一行,為乙個自然數k。
輸出對每個測試用例,用一行輸出符合要求的最小m+n值。
樣例輸入
樣例輸出
一些測試用例可供參考:
2 120
3 114
4 60
5 12
6 33
7 28
8 108
9 58
10 7
思路來之與這位大神:
思路其實就是幾個原理,乙個是標記,乙個是可能的情況。
標識指的就是重複計數原理。
可能的情況指的是就是抽屜原理。
意思就是,我們可以把滿足要求的每一種情況都標記起來,而情況的多少就是抽屜原理,他要找的是後三位的比較,那樣的話我們可以把所有的情況全存起來。用乙個一維陣列就可以了。
滿足情況的事件總共是,1000種,0~999。我們用乙個一維陣列存起來。(初始化尤為重要!)
**如下:
#include#include#includeusing namespace std;int a[1000];
int ans(int k)
int p = 1;
for(int i=1;i<=1000;i++)
else}}
}int main()
return 0;
}
K尾相等數問題
描述乙個自然數k 2 k 若存在自然數m和n m大於n 使得k m和k n均大於或等於1000,且它們的末尾三位數相等,則稱m和n是一對 k尾相等數 輸入 輸入包含若干個測試用例,每個測試用例佔一行,為乙個自然數k。輸出 對每個測試用例,用一行輸出符合要求的最小m n值。樣例輸入2 樣例輸出 120...
K尾相等數
problem 105 k尾相等數 time limit 3 ms memory limit 64 mb difficulty 1 description 輸入乙個自然數k k 1 如果存在自然數m和n m n 使得k m和k n均大於等於1000,且他們的末尾三位數相等,則稱m和n是一對 k尾相等...
K尾相等數 NYOJ212
題目描述 從鍵盤輸入乙個自然數k k 1 若存在自然數m和n m n 使得k m和k n均大於或等於1000,且他們末尾三位數相等,則稱m和n是一對 k尾相等數 編寫一程式,輸出m n值最小的k尾相等數。測試輸入資料 2 測試輸出資料 120 思路 最開始想錯了,蛋疼了很久。仔細思考後,我們可以注意...