初学者题解
2026-09-12 10:50:24
发布于:天津
12阅读
0回复
0点赞
分析:
这道题是一道典型的条件分支题目,题目要求根据数字n能被3、5、7中的哪些数整除,输出对应的结果。
我们先来分析题目中的四种情况:
1.能同时被3、5、7整除;
2.只能被其中两个数整除;
3.只能被其中一个数整除;
4.不能被任何数整除。
为了方便,我们可以先定义三个布尔变量来表示能否被3、5、7整除。
代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
bool a = (n % 3 == 0),b = (n % 5 == 0),c = (n % 7 == 0);
if (a && b && c){
cout << "3 5 7";
}
else if (a && b && !c){
cout << "3 5";
}
else if (a && c && !b){
cout << "3 7";
}
else if (b && c && !a){
cout << "5 7";
}
else if (a && !b && !c){
cout << "3";
}
else if (b && !a && !c){
cout << "5";
}
else if (c && !a && !b){
cout << "7";
}
else {
cout << "n";
}
return 0;
}
难点:
1.8种细分情况,容易漏;
2.必须先判断最严格的条件;
3.空格、小写n等细节;
4.用布尔变量简化判断。
总结:
1.本题所用知识点:布尔变量、取余、逻辑运算符与/非、if语句;
2.先计算三个布尔值,后续判断写起来更清晰;
3.按题目的优先级判断;
4.注意输出格式。

这里空空如也


有帮助,赞一个