求助——卡内存了(c++)
  • 板块P1900 自我数
  • 楼主AL_Blue
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/7/3 14:52
  • 上次更新2023/10/27 22:00:21
查看原帖
求助——卡内存了(c++)
543343
AL_Blue楼主2022/7/3 14:52

代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
bool a[10000005];
ll b[5008] = {0};
queue<int> temp;
ll n,k;
void self(ll x){
	if (x > n) return;
	a[x] = true;
	ll sum = 0, r = x;
	while ( r > 0 ){
		sum += r % 10;
		r /= 10;
	}
	self(x + sum);
	return;
}
int main(){
	ll i, cnt;
	cin >> n >> k;
	for ( i = 0; i < k; i++){
		cin >> cnt;
		temp.push(cnt);
	}
	i = 1;
	ll j = 1;
	while(i <= n){
		if (a[i] == false) {
			self(i);
			a[i] = false;
			if(j<5001){
				b[j] = i; 
			}
			j++;
			
		}
		i++;
	}
	i = 1;
	cout << j - 1 << endl;
	while (!temp.empty()){
		cout << b[temp.front()] << ' ';
		temp.pop();
	}
	return 0;
} 
2022/7/3 14:52
加载中...