Browse Problem: https://vjudge.net/problem/UVA-10127
ZeroJudge: https://zerojudge.tw/ShowProblem?problemid=a993
題目重新翻譯:
測資輸入一個數字n (0 ≤ n ≤ 10000),n無法被2或5整除。若某個十進位數字是n的倍數,而且每個位數剛好都是1,請問這個數字最小是幾位數?
解題想法:
為了避免處理大數,在每次加上一個新位數的時候,把餘數乘以10再加上1,即可得到同樣的計算結果。
#include <iostream>
using namespace std;
int main() {
int n;
while (cin >> n){
int num = 1;
int cnt = 1;
while (num % n != 0){
num %= n;
num *= 10;
num += 1;
cnt++;
}
cout << cnt << "\n";
}
}