红蓝搭配?无法理解
查看原帖
红蓝搭配?无法理解
1378709
Yue_Hao楼主2024/10/26 13:58

为啥前几个WA,后面几个RE啊? 不能理解

#include <stdio.h> //虽然是C++,但是习惯用C的头文件
//不加std
#define ll unsigned long long //简写
//不要问inline是什么,我自己觉得美观写上去的,不影响
inline /*inline是内联关键字*/ ll len(ll n){ //获取位数
	ll sum = 0;
	while(n != 0){
		sum++;
		n /= 10;
	}
	return sum;
}
inline ll po(ll a, ll b){ //乘方
	ll sum = 1;
	for(ll i = 1; i <= b; i++) sum *= a;
	return sum;
}
ll number[110005]; //临时存放变化的n
inline ll zulen(){ //临时获取变化的数据的数量
	ll ans = 0;
	for(ll i = 1; number[i] == 0; i++) ans++;
	return ans;
}
int main(){
	bool flag = false; //标记
	ll n, m, q;
	scanf("%lld %lld %lld", &n, &m, &q);
	for(ll i = 1; i <= q; i++){
		
		//进行操作
		ll x = n % 10;
		n /= 10;
		x = po(x, 2);
		x %= 10;
		ll wei = len(n);
		n = n + x * po(10, wei);
		
		//存储不同的n
		number[i] = n;
		
		//如果相等,直接打标记后结束
		if(n == m){
			flag = true;
			break;
		}
	}
	ll forci = zulen();
	//打印
	if( flag ){
		for(ll i = 1; i <= forci; i++) printf("%lld\n", number[i]);
	}else printf("-1");
	return 0;
}

运行结果传送门

2024/10/26 13:58
加载中...