PTA 整除光棍 (模拟)

L1-046 整除光棍 (20 分)

分析:

这道题输出的第一个数是爆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;
}

猜你喜欢

转载自blog.csdn.net/qq_43700916/article/details/88542680