| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 132077 | 胡海峰老师 | 04四位数移位 | C++ | Wrong Answer | 1 MS | 268 KB | 1963 | 2025-10-05 14:38:55 |
#include <iostream> //designed by hu 2025-10 using namespace std; int main(){ int n; cin>>n; cout<< n%10; cout<< n/10%10; cout << n/100%10; cout<<n/1000%10; return 0; } /* 解决这类数位操作题目的核心数学基础。为了更系统化, 我们可以将它们构建成一个完整的知识框架,并补充几点关键思想。 核心数学知识框架 1. 十进制记数系统 核心:逢十进一 任何一个数都可以表示为:数字 = 千位×1000 + 百位×100 + 十位×10 + 个位×1 2. 数码与数位 数码:0-9这些基本数字符号 数位:数码在数中所处的位置(个位、十位、百位等) 在3456中:千位是3,百位是4,十位是5,个位是6 3. 位权概念 每个数位代表的实际数值 = 数码 × 位权 位权:10的幂次(...1000, 100, 10, 1) 4. 整除与取余运算 /:获取商,用于"去掉低位" %:获取余数,用于"提取低位" 重要补充 5. 模运算的周期性 % 10 总是得到个位数 % 100 总是得到最后两位 这是提取数位的理论基础 6. 数位分离的通用模式 个位 = number % 10 十位 = (number / 10) % 10 百位 = (number / 100) % 10 千位 = (number / 1000) % 10 7. 数位重组的逆向思维 分离是分析,重组是合成 新数 = 新千位×1000 + 新百位×100 + 新十位×10 + 新个位 8. 编程中的边界考虑 前导零问题(如0123在数学上是123,但在编程中可能需要保留格式) 数据类型范围限制(int的表示范围) 思维流程示例(针对3456→6345) 分析阶段(分离数位): 个位:3456 % 10 = 6 十位:(3456 / 10) % 10 = 5 百位:(3456 / 100) % 10 = 4 千位:(3456 / 1000) % 10 = 3 重组阶段(移位构建): 新千位 = 原个位 = 6 新百位 = 原千位 = 3 新十位 = 原百位 = 4 新个位 = 原十位 = 5 新数 = 6×1000 + 3×100 + 4×10 + 5 = 6345 */
------Input------
6234
------Answer-----
4623
------Your output-----
4326