求帮助!
查看原帖
求帮助!
405732
VecDouble楼主2021/10/2 08:33

为什么我最后一个样例过不了?我和样例的输出都是一样的

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>

using namespace std;

char num[300];
int len, k;

inline void solve() //删除前导零
{
	for(int i = 0; i <= len; ++i)
	{
		if (num[i] != '0') break;
		if (num[i] == '0')
		{
			for(int j = 0; j < len; ++j)
				num[j] = num[j + 1];
			--len;
		}
	}
}

int main()
{
	gets(num);
	scanf("%d", &k);
	
	len = strlen(num); 
	
	while (k)
	{
		int i = 0;
		bool ok = false;
		
		for(; i < len - 1; ++i)
		{
			if (num[i] > num[i + 1] && num[i] != 0 && num[i + 1] != 0)
			{
				for(int j = i; j < len; ++j)
					num[j] = num[j + 1];
				--len;
				solve();
				ok = true;
				break;
			}
		}
		if (ok == false) --len;
		--k;
	}
	if (len == 0)
	{
		printf("%d\n", 0);
		return 0;
	}
	for(int i = 0; i < len; ++i)
		if (num[i]) printf("%c", num[i]);
	
	return 0;
}
2021/10/2 08:33
加载中...