GPLT L1-046. 整除光棍

题目链接戳这里
这题有点点意思,由于输入的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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容