91 条题解
-
-1
最复杂的代码😄 😄(疯狂写if……else语句)
#include <bits/stdc++.h> using namespace std; int main() { int a,b,c; cin>>a>>b>>c; if (a>b && a>c) { if (b>c) { if (a-b==1 && b-c==1) { cout<<"TRUE"; } else { cout<<"FALSE"; } } else { if (a-b==1 && c-b==1) { cout<<"TRUE"; } else { cout<<"FALSE"; } } } else if (b>a && b>c) { if (a>c) { if (b-a==1 && a-c==1) { cout<<"TRUE"; } else { cout<<"FALSE"; } } else { if (b-c==1 && c-a==1) { cout<<"TRUE"; } else { cout<<"FALSE"; } } } else { if (a>b) { if (c-a==1 && a-b==1) { cout<<"TRUE"; } else { cout<<"FALSE"; } } else { if (c-b==1 && b-a==1) { cout<<"TRUE"; } else { cout<<"FALSE"; } } } return 0; }
-
-1
-
-1
调用头文件
#include<bits/stdc++.h> using namespace std; int main() //自己把后面的东西连接起来(提示:main主函数前不能用long long,只能用int)
获取输入并计算每个数相邻的数:
long long a,b,c,a01,b01,c01,a11,b11,c11; cin>>a>>b>>c; a01=a-1; b01=b-1; c01=c-1; a11=a+1; b11=b+1; c11=c+1;
以每个数为中间数检查是否出现相邻并获取bool值
bool b001; b001=((a01==b&&a11==c)||(a01==c&&a11==b))||((b01==a&&b11==c)||(b01==c&&b11==a))||((c01==a&&c11==b)||(c01==b&&c11==a));
判断并输出(注意“TRUE”不要写成“TURE”)
if(b001){ cout<<"TRUE"<<endl; }else{ cout<<"FALSE"<<endl; }
-
-1
这道题一如既往的简单。
首先输入三个数,用数组来输入。int a[4]; cin >> a[1] >> a[2] >> a[3];
然后遍历获得最大值与最小值。
int a[4], big = 0, small = 114514; cin >> a[1] >> a[2] >> a[3]; for (int i = 1; i <= 3; i++) { if (a[i] > big) big = a[i]; if (a[i] < small) small = a[i]; }
然后如果最大值减最小值等于二(中间值只能差一而且是整数所以只能相邻对吧)
那就是相邻的三个数。
话不多说,上......
停一停!如果两个数相等怎么办啊!
好问题!所以我加了个简单粗暴的条件:if (a[1]==a[2]) or (a[2]==a[3]) or (a[3]==a[1]) { cout << "FALSE" << endl; return 0; }
提前结束啊......
所以,代码是......#include<bits/stdc++.h> using namespace std; int main() { int a[4], big = 0, small = 114514; cin >> a[1] >> a[2] >> a[3]; if (a[1]==a[2]) or (a[2]==a[3]) or (a[3]==a[1]) { cout << "FALSE" << endl; return 0; } for (int i = 1; i <= 3; i++) { if (a[i] > big) big = a[i]; if (a[i] < small) small = a[i]; } if ((big - small) == 2) cout << "TRUE" << endl; else cout << "FALSE" << endl; re turn 0; }
小盆友们,您学会了吗?
复制? 代码不易,先点赞,再复制吧! (不要忘了删倒数第二行的空格!)
-
-1
#include<iostream> using namespace std; int main() { int a,b,c,num=0;//num存储相差1的次数 cin>>a>>b>>c; if (a-b==1 or b-a==1)//如果前两个数相差1,相差次数+1 { num++; } if (b-c==1 or c-b==1)//如果后两个数相差1,相差次数+1 { num++; } if (c-a==1 or a-c==1)//如果旁边两个数相差1,相差次数+1 { num++; } if (num==2)//发现:如果相差次数(num)等于2,这三个数一定相邻 { cout<<"TRUE"; } else { cout<<"FALSE"; } }
-
-1
#include<iostream> using namespace std; int main() { int a,b,c,num=0;//num存储相差1的次数 cin>>a>>b>>c; if (a-b==1 or b-a==1)//如果前两个数相差1,相差次数+1 { num++; } if (b-c==1 or c-b==1)//如果后两个数相差1,相差次数+1 { num++; } if (c-a==1 or a-c==1)//如果旁边两个数相差1,相差次数+1 { num++; } if (num==2)//发现:如果相差次数(num)等于2,这三个数一定相邻 { cout<<"TRUE"; } else { cout<<"FALSE"; } }
-
-1
首先进行初始化(^_^*)
#include<iostream> using namespace std; int main()
然后是初始化数据( ̄▽ ̄)"
int a[3],num,pos=0,Q=0;//这里的pos和Q都用于判断,无实际意义哦. for(int i=0;i<3;i++) { cin>>a[i]; }
找到三个数字中的最小值(●ˇ∀ˇ●)
num=a[0]; for(int i=0;i<3;i++) { if(num<a[i]) { } else { num=a[i]; } }
然后比较是否相邻U•ェ•*U
for(int i=0;i<3;i++) { if(a[i]==num+1) { for(int i=0;i<3;i++) { if(a[i]==num+2) { Q++; cout<<"TRUE";//不要手贱写成TURE哦(*^_^*)~~(当时找了半个小时的代码错误)~~ } else { pos++; } } } else { pos++; } }
最后判断“FALSE”的输出,就完成力(o゚v゚)ノ
if(Q==1) { } else { if(pos>2)//这里的pos为什么大于2我也不知道,欢迎大家留言. { cout<<"FALSE"; } }return 0; }
本代码只运用for和if嵌套使用和最基本的输出语法,略显繁杂~~(排序使我不幸……)~~
-
-1
#include<iostream> using namespace std; int main() { int a[3]; int s = 0; int d = 0; for (int i = 0;i <= 2;i++) { cin >> a[i]; } for (int q = 0;q <= 2;q++) { for (int w = 1;w <= 2;w++) { if (a[w] > a[w-1]) { s = a[w-1]; a[w-1] = a[w]; a[w] = s; } } } for (int e = 1;e <= 2;e++) { if (a[e-1] - a[e] == 1) { d++; } } if (d == 2) { cout << "TRUE"; } else { cout << "FALSE"; } }
-
-1
这道题,明显要定义一个长为三的数组 a[3],与 max 来代表最大数,还有 mi 来代表减数,与 sol 来代表符合数
头文件定义
#include <iostream> using namespace std; int main() { … return 0; }
首先,先定义与输入,并寻找最大数
int max=0,sol=0,mi=1,a[3];//volatile variables for(int i=0;i<3;i++) { cin>>a[i];//input if(a[i]>max) { max=a[i]; } }
之后,因为另外两个数等于max-1或max-2,所以我在开头加了计算成立的a[x] 或a[y]a[maxpos]-1 或 a[maxpos]-2 的 sol 与作为变化减数的 mi 在 int 里面,并找到成立的数是不是两个数(pos2)
for(int i=0;i<3;i++) { if(a[i]==max-mi) { sol++; if(mi==1) { mi=2; } else { mi=1; }//change minus number } }
最后,判断 sol 是不是2(sol==2)
if(sol==2) { cout<<"TRUE"; } else { cout<<"FALSE"; }
再返回就行了
return 0;
上代码 (养成好习惯,看代码之前点个赞)
#include <iostream> using namespace std; int main() { int max=0,sol=0,mi=1,a[3]; for(int i=0;i<3;i++) { cin>>a[i]; if(a[i]>max) { max=a[i]; } } for(int i=0;i<3;i++) { if(a[i]==max-mi) { sol++; if(mi==1) { mi=2; } else { mi=1; } } } if(sol==2) { cout<<"TRUE"; } else { cout<<"FALSE"; } return 0; }
至此,问题搞定 (非简洁代码)
-
-1
#include <bits/stdc++.h> 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-1;j++) { 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"; } return 0; }
-
-1
这一道题其实算是level2中比较简单的一道题了,先来看看比较基础的做法吧~ 只需要疯狂得用if-else if-else if···-else即可
#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; }
-
-1
其实很简单,不一定按顺序就可以通过排序变成一定按顺序,这样判断相邻就简单多了
完整代码:
#include<bits/stdc++.h> using namespace std; int a[ 3 ] ; int main() { ios::sync_with_stdio( 0 ) ; cin.tie( 0 ) ; cin >> a[ 0 ] >> a[ 1 ] >> a[ 2 ] ; sort( a , a + 3 ) ; if( a[ 1 ] == a[ 0 ] + 1 and a[ 2 ] == a[ 1 ] + 1 ) cout << "TRUE" ; else cout << "FALSE" ; return 0; }
-
-1
#include <iostream> using namespace std; int main() { int a,b,c,num[4],max = 0,min = 1000000000,mid; cin >> a >> b >> c; num[1] = a; num[2] = b; num[3] = c; for(int i = 1;i <= 3;i++) { if(num[i] > max) { max = num[i]; } if(num[i] < min) { min = num[i]; } } if(max == num[1] and min == num[3]) { mid = num[2]; } if(max == num[1] and min == num[2]) { mid = num[3]; } if(max == num[2] and min == num[3]) { mid = num[1]; } if(max == num[3] and min == num[1]) { mid = num[2]; } if(max == num[2] and min == num[1]) { mid = num[3]; } if(max == num[3] and min == num[2]) { mid = num[1]; } if(min + 1 == mid) { if(min + 2 == max) { cout << "TRUE"; return 0; } } cout << "FALSE"; return 0; }
信息
- ID
- 36
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 6
- 标签
- 递交数
- 10472
- 已通过
- 3084
- 上传者