缘由PTA 求上升数 已经写出来了但觉得自己的方法很复杂_编程语言-CSDN问答

void 返回升序数组(int* a, int n)
{
int x = 0;
sz:if (x < n – 1)
{
if (a[x] >= a[x + 1])a[x + 1] = a[x] + 1;
++x; goto sz;
}
}
int az[47]{}, a = 0, b = 0, n = 0, m = 1, aa = 0;
std::cin >> a >> b; aa = a;
js:if (aa){ aa /= 10; m *= 10; goto js; }
fj:if (m /= 10){ az[n] = a / m; a -= az[n] * m; ++n; goto fj; }
返回升序数组(az, n);
hc:if (aa < n){ a *= 10; a += az[aa]; ++aa; goto hc; }aa = a;
sc:if (a < b)
{
if (a % 10 == 0)
{
aa = a;
m = 1;
n = 0;
goto js;
}
else
{
std::cout << a << " ";
if (++a % 100 == 90)a += 10;
}
goto sc;
}

void 高效上升数()
{
long long a = 0, b = 0, aa = 0;
int fa = 0, fb = 0;
std::cin >> a >> b;
xh:if (a < b)
{
aa = a;
fj:if (aa)
{
if (fa == 0)fa = aa % 10, aa /= 10;
if (fb == 0)fb = aa % 10, aa /= 10;
if (fa && fb && fa > fb)
fa = fb, fb = 0;
else if (a < b)
{
aa = ++a;
fa = fb = 0;
goto fj;
}
else goto xh;
sc:if (aa == 0 && a % 10 != 0)
{
std::cout << a++ << " ";
goto sc;
}
goto fj;
}
if (a % 100 == 90)
a += 10, fa = fb = 0;
goto xh;
}
}

![打卡信奥刷题(3584)用C++实现信奥题 P11523 [THUPC 2025 初赛] 摊位分配-171主机测评](https://www.171host.com/wp-content/uploads/2026/09/20260922020544-6ab1e2783b78e-220x150.png)
