首页 > 其他 > 详细

Codeforces Round #643 A Sequence with Digits

时间:2020-05-24 18:20:16      阅读:46      评论:0      收藏:0      [点我收藏+]

http://codeforces.com/contest/1355/problem/A

\(1\le a_1\le 10^{18}\)\(1\le k\le 10^{16}\)

似乎一脸不可做的样子。

但是,注意到 \(\mathbb{minDigit}\) 可能会出现零,所以我们可以加一个小优化,当 \(\mathbb{minDigit}(a_n)=0\) 时,就可以直接跳出了。

Code:

#include<bits/stdc++.h>
using namespace std;
long long mi(long long n) {
	long long ans=10;
	while(n) {
		ans=min(ans,n%10);
		n/=10;
	}
	return ans;
}//分解出 minDigit
long long ma(long long n) {
	long long ans=-1;
	while(n) {
		ans=max(ans,n%10);
		n/=10;
	}
	return ans;
}//分解出 maxDigit
long long t,a,k;
int main() {
	scanf("%lld",&t);
	while(t--) {
		scanf("%lld %lld",&a,&k);
		for(int i=1;i<k;i++) {
			long long x=mi(a),y=ma(a);
			if(x*y==0)//出现零
			    break;//跳掉
			a+=x*y;
		}
		printf("%lld\n",a);
	}
}

Codeforces Round #643 A Sequence with Digits

原文:https://www.cnblogs.com/lajiccf/p/12951602.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!