91 条题解
-
-1
#include<iostream> using namespace std; int main() { int n[3],m=0; for(int i=0;i<3;i++) { cin>>n[i]; } if(n[0]<n[1]) { if(n[1]-n[0]==1) { m+=1; } } if(n[0]<n[2]) { if(n[2]-n[0]==1) { m+=1; } } if(n[1]<n[2]) { if(n[2]-n[1]==1) { m+=1; } } if(n[0]>n[1]) { if(n[0]-n[1]==1) { m+=1; } } if(n[0]>n[2]) { if(n[0]-n[2]==1) { m+=1; } } if(n[1]>n[2]) { if(n[1]-n[2]==1) { m+=1; } } if(m==2) { cout<<"TRUE"; } else { cout<<"FALSE"; } return 0; }
打枪法
-
-1
#include <bits/stdc++.h> using namespace std; int main() { //定义变量 int a[3], t, n = 1; //获取数字 for (int i = 0; i < 3; i++) { cin >> a[i]; } //冒泡排序 for (int i = 0; i < 2; i++) { for (int j = 0; j < 3 - i; j++) { if (a[j] < a[j + 1]) { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } } //判断相邻 for (int i = 0; i < 2; i++) { if (a[i] - a[i + 1] != 1) { n = 0; break; } } //输出 if (n == 1) { cout << "TRUE"; } else { cout << "FALSE"; } return 0; }
-
-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 == a + 1 || c == a - 1) { if (c == b + 1 || c == b - 1) { cout << "TRUE"; return 0; } } cout << "FALSE"; return 0; }
-
-1
用了两个函数,代码格式化了一下。(本人在竞赛班里,做的有亿点迟)
#include <bits/stdc++.h> using namespace std; bool xl(int a,int b,int c) { return a + 1 == b || a + 1 == c || a - 1 == b || a - 1 == c; } bool sf(int a,int b,int c) { if (xl(a,b,c) && xl(b,a,c) && xl(c,a,b)) return true; return false; } int main() { int a,b,c; cin >> a >> b >> c; if (sf(a,b,c)) cout << "TRUE"; else cout << "FALSE"; return 0; }
-
-1
新手解题思路在此
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)//如果a[i]大于b,b = a[i],b1 = i { b = a[i]; } if (a[i] < c)//如果a[i]小于c,c = a[i],c1 = i { c = a[i]; } } if (b - c == 2)//相邻的三个整数中,最大数-最小数=2 { cout << "TRUE"; } else { cout << "FALSE"; } return 0; }
给个👍 吧
-
-1
#include <iostream> using namespace std; int main() { int a,b,c; cin>>a,b,c; if(ab+1||ab-1) { if(ac+1||ac-1) { cout<<"TRUE"; return 0; } } if(ba+1||ba-1) { if(bc+1||bc-1) { cout<<"TRUE"; return 0; } } if(cb+1||cb-1) { if(ca+1||ca-1) { cout<<"TRUE"; return 0; } } cout<<"FALSE"; return 0; }
-
-1
OK呀,哥儿几个今儿又来刷题了嗷┗|`O′|┛
long long a,b,c; cin>>a>>b>>c; if ((c==b+1) and (c==a+2))//a<b<c { cout<<"TRUE"; } else if ((b==c+1) and (b==a+2))//a<c<b { cout<<"TRUE"; } else if ((c==a+1) and (c==b+2))//b<a<c { cout<<"TRUE"; } else if ((a==c+1) and (a==b+1))//b<c<a { cout<<"TRUE"; } else if ((b==a+1) and (b==c+2))//c<a<b { cout<<"TRUE"; } else if ((a==b+1) and (a==c+2))//c<b<a { cout<<"TRUE"; } else { cout<<"FALSE"; }
注释啥的应该都看得懂,这里不过多解释。 不太建议用这种死亡判断,写错一个都要找bug找很久
-
-1
用绕大圈的方式解决问题:
#include <iostream> using namespace std; int main() { int n[3], a; // 绕一个大圈, 用数组解决; for (int i = 0; i < 3; i++) { cin >> n[i]; } //接收数据; //冒泡正序排序一波; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { if (n[j] > n[j + 1]) { a = n[j + 1]; n[j + 1] = n[j]; n[j] = a; } } } // 经过正序排序的三个整数字,就好判断啦! //连续整数,间隔都是1; (n[0] + 1 == n[1] && n[1] + 1 == n[2]) ? cout << "TRUE" : cout << "FALSE"; // 乱七八糟的三目运算; return 0; }
向大家
承认,这种方法是不行的保证这种方法是可行的。C++萌新娃子, 有错误请指出。 欢迎复制,评论! 记得👍 ! 三克油
-
-1
#include <bits/stdc++.h> using namespace std; int main() { int a,b,c; cin>>a>>b>>c; if(a-b1) { if(b-c1) { cout<<"TRUE"; } else if(c-a1) { cout<<"TRUE"; } else { cout<<"FALSE"; } } else if(b-a1) { if(a-c1) { cout<<"TRUE"; } else if(c-b1) { cout<<"TRUE"; } else { cout<<"FALSE"; } } else if(a-b2) { if((a+b)/2c) { cout<<"TRUE"; } else { cout<<"FALSE"; } } else if(b-a2) { if((a+b)/2c) { cout<<"TRUE"; } else { cout<<"FALSE"; } } else { cout<<"FALSE"; } return 0; }
-
-1
#include <iostream> using namespace std; int main(){ int a,b,c,n = 0; cin >>a>>b>>c; if(a+1==b||a+1==c){ n++; } if(c+1==a||c+1==b){ n++; } if(b+1==a||b+1==c){ n++; } if(a-1==b||a-1==c){ n++; } if(c-1==a||c-1==b){ n++; } if(b-1==a||b-1==c){ n++; } if(n == 4){ cout<<"TRUE"; } else{ cout<<"FALSE"; } }发一下我的最笨的怨种方法
-
-1
#include <iostream> using namespace std; int main() { int a,b,c; double x=0; cin>>a>>b>>c;#定义,输入 x=a+b+c;#求和 x=x/3.0;#求商 if(x==a or x==b or x==c)#看商是否等于其中某个数{ if((a==b and a==c and b==c)or (a%2==0 and b%2==0 and c%2==0)or(a%2==1 and b%2==1 and c%2==1))#看三个数是否相等或都为奇数或都为偶数{ cout<<"FALSE"; } else {cout<<"TRUE "; } } else{ cout<<"FALSE"; } return 0; }
大概是最简便的了
-
-1
只需要输入三个数,排序后看看是不是连续自然数就可以啦!废话不多说,万能头文件走起!
你们的思路忒复杂,看看这个!史上最短AC!!!
#include <bits/stdc++.h>//万能头文件 using namespace std; int a[5];//用数组简单点(可以用sort()排序) int main() { for (int i = 1; i <= 3; i++) cin >> a[i]; //输入 sort(a, a + 3 + 1); //排序 if (a[1] + 1 == a[2] && a[2] + 1 == a[3]) //判断 cout << "TRUE"; //输出 else cout << "FALSE" ; //输出 return 0; }
小盆友们,你们学废了吗?
抄代码好习惯:先点赞,后抱走。
-
-1
#include <bits/stdc++.h>//万能头文件 using namespace std; int main() { int a,b,c;//定义 cin>>a>>b>>c;//输入三个数 if (a - 1 == b && b - 1 == c)//暴力算法,费时间,请勿模仿 { cout << "TRUE"; } else if (a - 1 == c && c - 1 == b) { cout << "TRUE"; } else if (b - 1 == a && a - 1 == c) { cout << "TRUE"; } else if (b - 1 == c && c - 1 == a) { cout << "TRUE"; } else if (c - 1 == a && a - 1 == b) { cout << "TRUE"; } else if (c - 1 == b && b - 1 == a) { cout << "TRUE"; } else { cout << "FALSE"; } return 0;//结束 }//请不要把TRUE和FALSE写错,你会疯掉的(不知道哪里出错了) //跟一个人的代码很像,但本人并无抄袭 //一手交赞,一手交货
信息
- ID
- 36
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 6
- 标签
- 递交数
- 10472
- 已通过
- 3084
- 上传者