返回 课程

信奥AC之路-2级

0% 完成
0/0 步骤
  1. 第一课:字符
    5 主题|小节
  2. 第二课 嵌套循环与矩形图案(一)
    4 主题|小节
  3. 第三课 嵌套循环与矩形图案(二)
    3 主题|小节
  4. 第四课:矩形三
    5 主题|小节
  5. 第五课:字符矩形
    7 主题|小节
  6. 第六课:直角三角形
    6 主题|小节
  7. 第七课:倒三角形
    7 主题|小节
  8. 第八课:字符三角形
    8 主题|小节
  9. 第九课:字符倒三角形
    7 主题|小节
  10. 第十课:平行四边形
    6 主题|小节
  11. 第十一课:字符直角三角形
    5 主题|小节
  12. 第十二课:左斜三角形
    6 主题|小节
  13. 第十三课:等腰三角形
    6 主题|小节
  14. 第十四课:倒置等腰三角形
    7 主题|小节
  15. 第十五课:上下对称图形
    4 主题|小节
  16. 第十六课:复杂对称图形
    5 主题|小节
  17. 第十七课:左右对称图形
    5 主题|小节
  18. 第十八课:空心图形
    5 主题|小节
  19. 第十九课:空心图形
    3 主题|小节
  20. 第二十课:嵌套应用
    4 主题|小节
  21. 第二十一课:嵌套应用二
    4 主题|小节
  22. 第二十二课:嵌套应用三
    3 主题|小节
  23. 第二十三课:嵌套应用四
    3 主题|小节
课 20, 主题|小节 2
进行中

20.2 嵌套循环与条件筛选

2026年1月16日
课 进展
0% 完成

“在许多问题中,我们需要从一系列数据中筛选出满足特定条件的数据,”我继续解释道,”嵌套循环配合条件判断可以帮助我们高效地完成这类任务。”

20.2.1 姐妹数对问题

题目描述:给定两个不同的正整数x,y,若x+y能被3除尽或能被7除尽,则称x,y为姐妹数对。求1~n之间的所有姐妹数对。

样例输入

5

样例输出

1 2
1 5
2 4
2 5
3 4

代码实现

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;  // 读入上限n
    
    // 外循环:遍历第一个数字i从1到n-1
    for(int i=1; i<n; i++) {
        // 内循环:遍历第二个数字j从i+1到n
        // j从i+1开始是为了确保i<j,避免重复计算相同的数对
        for(int j=i+1; j<=n; j++) {
            // 判断i和j是否构成姐妹数对:和能被3整除或能被7整除
            if((i+j) % 3 == 0 || (i+j) % 7 == 0) {
                cout << i << " " << j << endl;  // 输出满足条件的数对
            }
        }
    }
    return 0;
}

思考

  • 外循环(i)从1遍历到n-1
  • 内循环(j)从i+1遍历到n,保证每对数只统计一次
  • 使用条件(i+j) % 3 == 0 || (i+j) % 7 == 0判断是否为姐妹数对
  • 这个实验展示了如何使用嵌套循环和条件判断找出满足特定数学关系的数对