返回 课程

信奥AC之路-1级

0% 完成
0/0 步骤
  1. 第1课 开发环境与基础输出
    5 主题|小节
  2. 第2课 算术运算符
    7 主题|小节
  3. 第3课 printf与运算输出
    7 主题|小节
  4. 第4课 数的进制与拆位
    6 主题|小节
  5. 第5课 变量与基础运算
    17 主题|小节
  6. 第6课 常量与取整运算
    8 主题|小节
  7. 第7课 关系运算
    8 主题|小节
  8. 第8课 逻辑运算
    9 主题|小节
  9. 第9课 输入与计算进阶
    10 主题|小节
  10. 第10课 if语句及双分支语句
    8 主题|小节
  11. 第11课 if语句及双分支进阶
    11 主题|小节
  12. 第12课 三目运算
    9 主题|小节
  13. 第13课 多分支、多if和switch语句
    11 主题|小节
  14. 第14课 循环(基本输出)
    7 主题|小节
  15. 第15课 循环(While+If)
    8 主题|小节
  16. 第16课 循环(计数、求和、求乘积)
    10 主题|小节
  17. 第17课 循环进阶(While+)
    8 主题|小节
  18. 第18课 do-while及while其他用法
    8 主题|小节
  19. 第19课 For循环基础
    9 主题|小节
  20. 第20课 For循环进阶
    8 主题|小节
课 5, 主题|小节 11
进行中

5.10 数字重新组合

2025年9月22日
课 进展
0% 完成

“现在我们来学习一个有趣的技巧,”我说,”如何把一个数字拆开再重新组合。”

// 获取各个位的数字
int num = 1234;
int ones = num % 10;            // 获取个位: 4
int tens = (num / 10) % 10;     // 获取十位: 3
int hundreds = (num / 100) % 10; // 获取百位: 2
int thousands = num / 1000;      // 获取千位: 1

// 数字重组
int new_num = ones * 1000 + tens * 100 + 
              hundreds * 10 + thousands;  // 4321

// 提取指定位置的数字
int n = 12345;
int position = 3;  // 从右往左数第3位
int digit = (n / (int)pow(10, position-1)) % 10;

练习题:

  1. 选择题:对于数字1234,以下哪个表达式能得到十位数字3?
    A. 1234 % 10
    B. (1234 / 10) % 10
    C. 1234 / 100
    D. (1234 / 100) % 10

正确答案:B
解析:先除以10去掉个位,再对10取余得到十位数字。

  1. 判断题:对任意正整数n,n % 10总能得到其个位数字。
    正确答案:√
    解析:对10取余运算可以得到任何正整数的个位数字。