GPLT L1-046. 整除光棍

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

#include 
#include 
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;
}

你可能感兴趣的:(GPLT L1-046. 整除光棍)