分析:
这道题输出的第一个数是爆long long的,但有趣的是,由于每次由于光棍的特性,只会变大为原来的10倍,即“结果1”每一次循环固定地*10+取模数,所以就可以模拟一次输出一位数,执行起来极大简化,代码可以做到非常简洁。
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int mod, left = 0, digit = 1;
bool flag = 0;
cin >> mod;
for (;; digit++){
left = left * 10 + 1;
int arr = left / mod;
if (arr)flag = 1;
if (flag)cout << arr;
left %= mod;
if (!left)break;
}
cout << ' ' << digit;
return 0;
}