当前位置: 首页 > news >正文

HJ129 小红的双生数

知识点数论

校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。

描述

小红定义一个正整数是“双生数”,当且仅当该正整数的每个数位的相邻数位中,恰好有一个和该数位的数字相同。
现在小红拿到了一个正整数 xx,她希望你求出不小于 xx 的最小“双生数”。

输入描述:

输入一个正整数 x(1≦x≦10100 000)x(1≦x≦10100000) 代表限制。

输出描述:

输出一个正整数,代表不小于 xx 的最小“双生数”。该数字不包含前导零。

示例1

输入:

123

复制输出:

1100

复制说明:

在这个样例中,11001100 的第一、二个数位相同,第三、四个数位相同。我们可以证明,这是符合要求的最小的双生数。

示例2

输入:

114514

复制输出:

115500
#include <iostream> #include <vector> #include <string> using namespace std; vector<int> find(const string& s) { int n = s.length(); vector<int> ans; if (n % 2 == 1) { // 奇数长度 ans.resize(n + 1, 0); for (int i = 1; i <= n; i += 2) { int val = ((i / 2) & 1) ^ 1; ans[i] = ans[i - 1] = val; } } else { // 偶数长度 ans.resize(n, 0); for (int i = 1; i < n; i += 2) { int a = s[i - 1] - '0'; int b = s[i] - '0'; if (a == b) { ans[i] = ans[i - 1] = a; } else { int target = a * 10 + b; for (int j = 0; j < 10; j++) { if (j * 11 >= target) { ans[i] = ans[i - 1] = j; break; } } int k = 0; for (int j = i + 2; j < n; j += 2) { ans[j] = ans[j - 1] = k; k ^= 1; } break; } } for (int i = 2; i < n; i += 2) { if (ans[i] == ans[i - 1]) { bool found = false; for (int j = i + 1; j >= 0; j -= 2) { ans[j] += 1; ans[j - 1] += 1; if (j > 2 && ans[j] == ans[j - 2]) { ans[j] += 1; ans[j - 1] += 1; } if (ans[j] < 10) { found = true; int k = 0; for (int p = j + 2; p < n; p += 2) { ans[p] = ans[p - 1] = k; k ^= 1; } break; } } if (!found) { ans.resize(n + 2, 0); for (int j = 1; j <= n + 1; j += 2) { int val = ((j / 2) & 1) ^ 1; ans[j] = ans[j - 1] = val; } return ans; } } } } return ans; } int main() { string x; cin >> x; vector<int> result = find(x); for (int num : result) { cout << num; } cout << endl; return 0; }
http://www.jsqmd.com/news/482464/

相关文章:

  • NxN棋盘问题00:对角线特性
  • Java Object 类笔记
  • 聚力谱新篇,逐梦新征程!itc保伦股份市场服务部、设计部启动大会圆满举行!
  • React15 - React-Router v3 如何在react15项目中进行路由跳转和数据传递
  • 【JAVA基础09】—— 赋值与三元运算符:从基础到实操的避坑指南
  • python创建env环境的金字教程
  • 中国服务外包杯D6类赛题进展
  • React15 - react-router v3 版本在react v15当中的使用
  • 提升学术成果的利器:9大查重工具全面解析
  • 学术写作必备:9款查重工具详细对比与使用技巧
  • 【稳定EI检索】第二届桥隧建设与工程国际学术会议(BTCE 2026)
  • 论文质量升级指南:9款查重工具精准评测
  • 优化论文质量的实用工具:9款高效查重软件深度测评
  • parser.add_argument(“experiment_dir“, type=str)和parser.add_argument(“--experiment_dir“, type=str)的区别
  • 【HarmonyOS 6】个人中心数据可视化实战
  • PAT 乙级 1113
  • React15 - 在ruducer中以对象映射替代switch语句
  • 第10章 矩阵分解:拆解复杂矩阵,简化工程应用
  • Hadoop生态中的数据生命周期管理技术深度剖析
  • **图神经网络实战:用PyTorch Geometric构建社交关系预测模型**在当前人工
  • UV 使用指南
  • **发散创新:基于Python的伦理黑客实战演练——从漏洞探测到防御加固全流程解
  • AI 工程化实战:5分钟带你快速掌握 Function Calling!
  • React15 - 在redux应用中数据存储位置探讨
  • 魔术橡皮 3.1.17 | 无限次AI生图,AI橡皮,图片AI编辑修改
  • 《C++实战项目-高并发内存池》7.大块内存的申请与释放
  • 实战|AI应用架构师用GNN构建智能客服的意图识别
  • Qt Creator + MSVC 2022 64bit 配置 Dump 文件生成与分析流程
  • IBM助力实现费曼量子模拟愿景
  • 微软在Windows 11中新增Xbox模式