PAT

GPLT L1-046. 整除光棍

2018-03-28  本文已影响11人  无令便逐风

题目链接戳这里
这题有点点意思,由于输入的N在1k以内,所以一般的结构肯定存不下.方法是幻想出一个很长很长的1111...111,那我们可以先给它找一个比N大的111..1作为幻想的大数的高位,然后假设后面有许多1,对N做除法,思路是模拟.

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

typedef unsigned long long ll;
const int inf = 0x3f3f3f3f, maxN = 50005;

int main() {
    ll N, big = 1, cnt = 1;;
    scanf("%lld", &N);
    while (big < N) {
        big *= 10;
        big += 1;
        ++cnt;
    }
    while (1) {
        printf("%lld", big / N);
        if (big % N == 0) {
            break;
        } else {
            big %= N;
            big *= 10;
            big += 1;
            ++cnt;
        }
    }
    printf(" %lld", cnt);
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读