0分求助大佬,感觉逻辑上没啥问题啊
查看原帖
0分求助大佬,感觉逻辑上没啥问题啊
1189882
qjh3365075019楼主2023/12/20 19:35
#include <iostream>
#include <stdlib.h>
using namespace std;
#define int long long
#define rep(i,a,n) for(int i=a; i<n; i++)

signed main()
{
	int num[255];
	char ch;
	int i = 0, j = 0, n, m, k, max, count = 0, sum = 0;
	int flag = 0;

	while ((ch = getchar()) != '\n')
	{
		ch = ch - '0';
		num[i] = ch;
		i++;
	}

	cin >> m;
	n = i;
	max = n;

	while (1)
	{
		rep(i, 0, n - 1)
		{
			if (num[i + 1] >= num[i])
			{
				if (i == n - 2)
				{
					num[i + 1] = 'a';
					count++;
					if (count == m)
					{
						goto A;
					}
				}
				else
				{
					continue;
				}
			}
			else
			{
				num[i] = 'a';
				count++;
				if (count == m)
				{
					goto A;
				}
			}
			goto A;
		}
A:		k = max - count;
		
		rep(i, 0, n)
		{
			if (num[i] >= 0 && num[i] <= 9)
			{
				num[j] = num[i];
				j++;
			}
			if (j == k)
			{
				break;
			}
		}
		j = 0;
		n = k;
		if (count == m)
		{
			break;
		}
	}

	rep(i, 0, n)
	{
		cout << num[i];
	}

	return 0;
}
2023/12/20 19:35
加载中...