传送门
// 题意: 就是给定一个<1000的正整数n, 找到一个一个全由1组成的数使得可以整除这个给定的数.
输出整除的结果以及这个数的位数.
思路: 当然用Java就很简单了. 但是有点烦, 说说C++的做法, 因为最后的那个数全由1组成, 我们只是要求商的结果, 所以我们可以模拟一个除法来做, 即我们每次增加一位数, 然后判定是否可以商数, 即是否整除不是0, 有的话就累加起来, 并且之后就算是0也要算进去, (就是模拟除法的过程取商数, 写出来就懂了.), 然后直到模数为0就可以结束了……. 具体看代码吧….
AC Code
void solve()
{
int n;
while(cin >> n) {
int now = 1, k = 0;
string ans = "";
for (int len = 1 ; ; len++) {
if (k || now/n) {
ans += ('0' + now/n);
k = 1;
}
now %= n;
if (now == 0) {
cout << ans << ' ' << len << endl;
break;
}
now = now*10 + 1;
}
}
}