题目大意
主要思路
由于数据的位数过多,直接暴力做肯定是不行的,高精度又过于麻烦,所以利用高精度除法的思想来模拟除法即可
AC代码
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <string>
#include <cmath>
#include <queue>
#include <vector>
#include <map>
#include <sstream>
using namespace std;
int main(void)
{
long long n, cnt = 0, num = 0;
cin >> n;
while(num < n)
{
num = num * 10 + 1;
cnt++;
}
while(true)
{
cout << num / n;
num %= n;
if(num == 0)//余数为0则说明找到1最少的数,如果不为0则位数+1继续做除法
{
break;
}
num = num * 10 + 1;
cnt++;
}
cout << ' ' << cnt << endl;
return 0;
}