Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
315656 yukunwei 守序数 T4 C 运行出错 8 MS 8308 KB 1130 2026-04-12 12:28:07

Tests(8/10):


#include <stdio.h> #include <stdlib.h> #define MAX_QUEUE_SIZE 1000000 // 队列最大容量,适应n=1e6的需求 int main() { int n; scanf("%d", &n); // 初始化队列,存储守序数 long long* queue = (long long*)malloc(MAX_QUEUE_SIZE * sizeof(long long)); int front = 0, rear = 0; // 1-9是初始守序数(一位数) for (int i = 1; i <= 9; i++) { queue[rear++] = i; } long long result = 0; for (int count = 0; count < n; count++) { long long current = queue[front++]; // 取出队首元素 result = current; int last_digit = current % 10; // 可能的下一位数字:last_digit-1, last_digit, last_digit+1(需在0-9范围内) for (int d = last_digit - 1; d <= last_digit + 1; d++) { if (d >= 0 && d <= 9) { long long next_num = current * 10 + d; // 生成新的守序数 queue[rear++] = next_num; } } } printf("%lld\n", result); free(queue); return 0; }


测评信息: