【題解】ZeroJudge a993: 10127 – Ones

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";
    }
}
分享本文 Share with friends