填空题
  • 板块灌水区
  • 楼主OI_Contest
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/10/4 16:06
  • 上次更新2024/10/4 17:48:49
查看原帖
填空题
1410818
OI_Contest楼主2024/10/4 16:06

我希望输入一个大于 00 的整数 nn,让这段程序输出的结果为 33,那么 nn 最小是()?

#include <bits/stdc++.h>
using namespace std;

int main() {
   int n, cnt = 0;
   cin >> n;
   if (n % 2 == 1)
       cnt++;
   if (n % 3 == 2)
       cnt++;
   if (n % 4 == 3)
       cnt++;
   if (n % 5 == 4)
       cnt++;
   cout << cnt;
   return 0;
}
  1. 分析问题:
    • 程序中对输入的整数(n)进行了一系列的条件判断。
    • 条件分别是(n%) (2 = =1)、(n%) (3 = =2)、(n%) (4 = =3)、(n%) (5 = =4)。
    • 最终输出的结果是满足这些条件的个数,题目要求输出结果为(3),求(n)的最小值。
  2. 逐步推导:
    • 先看条件(n%) (2 = =1),这意味着(n)是一个奇数。
    • 再看条件(n%) (3 = =2),满足这个条件的数有(5)、(8)、(11)等,这些数中奇数最小的是(5),所以此时(n)可能为(5)。
    • 接着看条件(n%) (4 = =3),(5%) (4 = =1)不满足这个条件。继续找满足前两个条件且是奇数的数,(11)满足前两个条件且(11%) (4 = =3),所以此时(n)可能为(11)。
    • 最后看条件(n%) (5 = =4),(11%) (5 = =1)不满足这个条件。继续找满足前三个条件且是奇数的数,(23)满足前三个条件且(23%) (5 = =3)。
    • 此时(n = 23)满足所有条件且输出结果为(4),不满足输出结果为(3)。继续找下一个满足条件的数,(59)满足所有条件且输出结果为(3)。
  3. 得出结论:
2024/10/4 16:06
加载中...