91 条题解
-
76
#include<iostream> using namespace std; int main() { int a,b,c; cin>>a>>b>>c; if(a==b+1||a==b-1) { if(a==c+1||a==c-1) { cout<<"TRUE"; return 0; } } if(b==a+1||b==a-1) { if(b==c+1||b==c-1) { cout<<"TRUE"; return 0; } } if(c==b+1||c==b-1) { if(c==a+1||c==a-1) { cout<<"TRUE"; return 0; } } cout<<"FALSE"; return 0; }
咳咳,给各位提个醒,在写输出的时候,千万别手欠把TRUE写成TURE(甚至某人为了这个事找了十分钟bushi)还有,在写if的时候,别手欠把==写成=(doge)👍
-
15
#include<iostream> using namespace std; int main() { int a,b,c; cin>>a>>b>>c; if(a==b+1||a==b-1) { if(a==c+1||a==c-1) { cout<<"TRUE"; return 0; } } if(b==a+1||b==a-1) { if(b==c+1||b==c-1) { cout<<"TRUE"; return 0; } } if(c==b+1||c==b-1) { if(c==a+1||c==a-1) { cout<<"TRUE"; return 0; } } cout<<"FALSE"; return 0; }
C++萌新,有错误请指出! 欢迎复制,参考,评论! 编码不易,点个赞再走
-
12
#include <iostream> using namespace std; int main() { int a,b,c,sum; cin >> a >> b >> c; sum=a+b+c; if(sum % 3 != 0) { cout <<"FALSE"; } else { if(a >= sum/3-1 and a <= sum/3+1 and b >= sum/3-1 and b <= sum/3+1 and c >= sum/3-1 and c <= sum/3+1) { cout <<"TRUE"; } else { cout <<"FALSE"; } } return 0; } 没什么技巧,就是通过找中间值,简单易懂,就24行。看不懂的下方评论区艾特我。AC过关的,放心用。(作者注:创作不易,给个赞赞吧!!!👀️)
-
12
很明显,这道题需要一个长度为3的数组和两个分别记录数组中最大数和最小数的变量,然后只要判断最大数减2是不是等于最小数(最大数和最小数差2,中间数肯定都和它们差1了,为啥还要列两个逻辑表达式呢?)
首先,要定义和输入,有2个变量,分别是b(big)和s(small),还有一个数组。 接着,把b和s都默认为a[0],如下图所示。
int b,s,a[3]; //定义 cin>>a[0]>>a[1]>>a[2]; //输入 b=a[0];s=a[0]; //b和s都默认为a[0]
接着,运用for循环,将i从1到2,依次判断大小。
for(int i=1;i<3;i++) //已经默认为a[0]了,所以从1开始 if(a[i]>b) b=a[i]; //更新最大值 else if(a[i]<b) s=a[i]; //更新最小值 else break; //不大也不小,说明两数相等,不相差1,干脆直接跳出循环吧
最后,判断一下
if(b-2==s) cout<<"TRUE"; else cout<<"FALSE";
核心代码:
int b,s,a[3]; cin>>a[0]>>a[1]>>a[2]; b=a[0];s=a[0]; for(int i=1;i<3;i++) if(a[i]>b) b=a[i]; else if(a[i]<b) s=a[i]; else break; if(b-2==s) cout<<"TRUE"; else cout<<"FALSE";
就这么简单!
-
9
不会吧,这么简单 应该都会吧......(先赞 后看!养成习惯!)
#include <iostream> // 瓦是不会告诉你有万能头文件这种东西的 using namespace std; int main() { int a,b,c; cin>>a>>b>>c;//输入 if(a==b+1||a==b-1)//是输出"TRUE" { if(a==c+1||a==c-1) { cout<<"TRUE"; return 0; } } if(b==a+1||b==a-1)//是输出"TRUE" { if(b==c+1||b==c-1) { cout<<"TRUE"; return 0; } } if(c==b+1||c==b-1)//是输出"TRUE" { if(c==a+1||c==a-1) { cout<<"TRUE"; return 0; } } cout<<"FALSE";//否则输出"FALSE" return 0; }
制作不易,给个赞吧,球球了...... 有什么问题,联系我,邮箱是
ASheepBoy_Bed@163.com
-
3
新手解题思路在此
AC哈,放心食用👀️
#include<iostream> using namespace std; int main() { int a[3] , b , c ; //b最大值,c最小值 for (int i = 0; i < 3; i++) cin >> a[i]; b = a[0]; c = a[0]; //输入整数,b,c,都等于第一个数 for (int i = 0; i < 3; i++) { if (a[i] > b) b = a[i];//如果a[i]大于b,b = a[i],b1 = i if (a[i] < c) c = a[i];//如果a[i]小于c,c = a[i],c1 = i } if (b - c == 2)//相邻的三个整数中,最大数-最小数=2 cout << "TRUE"; else cout << "FALSE"; return 0; }
求赞啊
-
2
高级的做法
#include <bits/stdc++.h> using namespace std; int a[5]; bool neighbour(int x,int y,int z) //判断是否相邻的函数 { if (x+1==y) { if (y+1==z) { return true; } } return false; } int main() { cin >> a[1] >> a[2] >> a[3]; sort(a+1,a+3+1); //这里将a[1],a[2],a[3]从小到大排序,便于判断是否相邻 if (neighbour(a[1],a[2],a[3])) { cout << "TRUE"; } else { cout << "FALSE"; } return 0; }
-
2
赞 -> 看 懂?
这题瓦看别人大多都用的最大/最小值
所以瓦就用的排序法(因为
)看不懂这里瓦用的冒泡排序
冒泡排序核心代码如下
for (int i = 0;i < 3;i++) { for (int j = 0;j < 3;j++) { if (j != 2)// 这个判断必须加,不然会报错 { if (a[j] >= a[j + 1]) { // 交换顺序 x = a[j]; a[j] = a[j + 1]; a[j + 1] = x; } } } }
也可以用其他方法排序 然后是判断 直接看差就行
if ((a[1] - a[0] == 1) && (a[2] - a[1] == 1)) { cout << "TRUE";// 正确 } else { cout << "FALSE";// 错误 }
全部代码如下
#include <iostream> // 你觉得万能头文件这类东西是你该学的吗 using namespace std; int main() { int a[3],x; for (int i = 0;i < 3;i++) { cin >> a[i];//输入数组 } // 冒泡排序 // 也可以用其他方法排序 for (int i = 0;i < 3;i++) { for (int j = 0;j < 3;j++) { if (j != 2)// 这个判断必须加,不然会报错 { if (a[j] >= a[j + 1]) { // 交换顺序 x = a[j]; a[j] = a[j + 1]; a[j + 1] = x; } } } } // 判断差是否等于1 if ((a[1] - a[0] == 1) && (a[2] - a[1] == 1)) { cout << "TRUE";// 正确 } else { cout << "FALSE";// 错误 } return 0; }
已AC,请放心食用
快给瓦点赞!!!!
-
1
一种使用列表,而不需要复杂if嵌套的方法,方便快捷。 `
#include <bits/stdc++.h> using namespace std; int main(){ int a[10],x,cont; //cont 为连续次数 for (auto &i:a) i = 0; for (int i = 1; i <= 3; i++){ cin >> x; a[x]++; } for (auto &i:a){ if (!i) //连续中断,重设次数 cont = 0; if (i) //连续继续,次数+1 cont++; if (cont == 3){ //三次连续,结束运行 cout << "TRUE"; return 0; } } cout << "FALSE"; //无连续 return 0; }
-
1
#include <iostream> using namespace std; int a[3]; bool qaz=true; int main() { for (int i = 1; i <= 3; i++) { cin >> a[i]; } // 从小到大排序 for (int i = 1; i <= 3; i++) { for (int j = i+1; j <= 3; j++) { if (a[j] < a[i]) { int t = a[i]; a[i] = a[j]; a[j] = t; } } } for (int i=2;i<=3;i++) { if (a[i]-a[i-1]!=1) { qaz=false; } } if (qaz) { cout<<"TRUE";; } else { cout<<"FALSE"; } } //小题大做
-
1
点个赞吧😄
#include <bits/stdc++.h> using namespace std; int main() { int a,b,c; cin>>a>>b>>c; if(a==b+1||a==b-1) { if(a==c+1||a==c-1) { cout<<"TRUE"; return 0; } } if(b==a+1||b==a-1) { if(b==c+1||b==c-1) { cout<<"TRUE"; return 0; } } if(c==b+1||c==b-1) { if(c==a+1||c==a-1) { cout<<"TRUE"; return 0; } } cout<<"FALSE"; return 0; }
-
1
直接上代码😄
#include <bits/stdc++.h> using namespace std; int x,y,z; int main() { cin>>x>>y>>z; if(((x-1==y&&x+1==z)||(x+1==y&&x-1==z))||((y-1==x&&y+1==z)||(y+1==x&&y-1==z))||((z-1==y&&z+1==x)||(z+1==y&&z-1==x)))//判断三个整数是否相邻(暴力枚举) { cout<<"TRUE";//输出"TRUE" } else//否则 { cout<<"FALSE";//输出"FALSE" } return 0; } //暴力枚举编码不易😕 ,先给赞再Copy
-
1
easy~~
#include<bits/stdc++.h> using namespace std; int main(){ int a,b,c; cin>>a>>b>>c; if(a==b+1||a==b-1){ if(a==c+1||a==c-1){ cout<<"TRUE"; return 0; } } if(b==a+1||b==a-1){ if(b==c+1||b==c-1){ cout<<"TRUE"; return 0; } } if(c==b+1||c==b-1){ if(c==a+1||c==a-1){ cout<<"TRUE"; return 0; } } cout<<"FALSE"; return 0; }
-
1
AC过了,放心
#include <iostream> using namespace std; int main() { int a,b,c,n; cin >>a >>b >>c; if((a + b + c) % 3 == 0) { n = (a + b + c) / 3; if(a >= n - 1 && a <= n + 1 && b >= n - 1 && b <= n + 1 && c >= n - 1 && c <= n + 1) { cout << "TRUE"; } else { cout << "FALSE"; } } else { cout << "FALSE"; } }
-
1
#include <iostream> using namespace std; int main() { int a,s,d,m=0; cin >> a >> s >> d; if ((a+s+d)%3==0) { m = (a+s+d)/3; if ((a==m)||(s==m)||(d==m))//枚举所有可能 { if ((a==m-1)||(s==m-1)||(d==m-1)) { if((a==m+1)||(s==m+1)||(d==m+1)) { cout << "TRUE"; } else { cout << "FALSE"; } } else { cout << "FALSE"; } } else { cout << "FALSE"; } } else { cout << "FALSE"; } return 0; }
天知道我打了多久T~T🚀️ 字别打错啊!!! AC过👀️ 点个赞再走啊
-
1
新手上路,请多关照!
#include<iostream> using namespace std; int main() { int a,b,c; cin>>a>>b>>c; if(a==b+1||a==b-1) { if(a==c+1||a==c-1) { cout<<"TRUE"; return 0; } } if(b==a+1||b==a-1) { if(b==c+1||b==c-1) { cout<<"TRUE"; return 0; } } if(c==b+1||c==b-1) { if(c==a+1||c==a-1) { cout<<"TRUE"; return 0; } } cout<<"FALSE"; return 0; }
-
1
三个相邻的整数最大数和最小数之差为2(一定), 根据这个来编写代码会容易许多. 至于顺序问题嘛……用一个sort函数就可以解决啦(*≧ω≦)代码如下:
#include <bits/stdc++.h> using namespace std; int a[4]; int main() { for(int i=1;i<=3;i++) { cin>>a[i]; } sort(a+1,a+4); //sort函数第一个参数为排序起始位置下标, 第二个为终止位置的下一个下标 if(a[3]-a[1]==2) { cout<<"TRUE"; } else { cout<<"FALSE"; } return 0; }
(: 代码有什么缺陷还请各位老师和同学们在聊天里指出, 本人将尽量改正. 同时也感谢大家的支持 :) 编码不易,点个赞再走人吧❤️
信息
- ID
- 36
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 6
- 标签
- 递交数
- 10472
- 已通过
- 3084
- 上传者