普及-啊啊啊啊为什么会错呢
查看原帖
普及-啊啊啊啊为什么会错呢
645451
封禁用户楼主2023/1/30 12:41
#include <string>
#include <iostream>

using namespace std;

int n,k;
string a;

char jian(char num)
{
	if (num  == '0')
	{
		return '9';
	}
	return num-1;
}

char jia(char num)
{
	if (num  == '9')
	{
		return '0';
	}
	return num+1;
}


void solve(string now,int gai,int biandong)
{
	if (gai+1 == n)
	{
		if (k-biandong >= 1)
		{
			string temps=now;
			temps[0]=jian(temps[0]);
			int n=temps.length()-1;
			while (temps[n] == '0' && n != 0)
			{

			}
			string temp114514s="";
			for (int i=0;i<=n;i++)
			{
				temp114514s=temp114514s+temps[i];
			}
			cout << temp114514s << endl;

			temps=now;
			n=temps.length()-1;
			while (temps[n] == '0' && n != 0)
			{

			}
			temp114514s="";
			for (int i=0;i<=n;i++)
			{
				temp114514s=temp114514s+temps[i];
			}
			cout << temp114514s << endl;

			temps=now;
			temps[0]=jia(temps[0]);
			n=temps.length()-1;
			while (temps[n] == '0' && n != 0)
			{

			}
			temp114514s="";
			for (int i=0;i<=n;i++)
			{
				temp114514s=temp114514s+temps[i];
			}
			cout << temp114514s << endl;

		}
	}
	else
	{
		string tempa=now;
		tempa[n-1-gai]=jian(tempa[n-1-gai]);
		solve(tempa,gai+1,biandong+1);

		solve(now,gai+1,biandong);

		tempa=now;
		tempa[n-1-gai]=jia(tempa[n-1-gai]);
		solve(tempa,gai+1,biandong+1);
	}
	return;
}



int main()
{
	cin >> n >> a >> k;
	for (int i=0;i<n-a.length();i++)
	{
		a="0"+a;
	}
	solve(a,0,0);
	return 0;
	
}
2023/1/30 12:41
加载中...