题目链接戳这里
这题有点点意思,由于输入的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;
}
网友评论