欢迎光临
我们一直在努力

【高效生成范围内上升数】2024-5-1

缘由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;
}
}

赞(0)
未经允许不得转载:171主机测评 » 【高效生成范围内上升数】2024-5-1
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址