91 条题解

  • -1
    @ 2023-3-13 13:27:13

    最复杂的代码😄 😄(疯狂写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
      @ 2023-1-10 18:24:11
      #include<iostream>
      using namespace std;
      int num;
      int main()
      {
          int m , a[100] , n;
          cin >> m;
          for (int i = 1;i <= m;i ++)
          {
              cin >> a[i];
          }
          cin >> n;
          for (int i = 1;i <= m;i ++)
          {
              if (a[i] == n)
              {
                  num++;
                  break;
              }
          }
          if (num >= 1)
          {
              cout << num;
          }
          else
          {
              cout << "-1";
          }
          
          return 0;
      } 
      
      
      
      
    • -1
      @ 2023-1-9 19:35:43
      #include<iostream>
      using namespace std;
      int sum;
      int main()
      {
          int a, b , c;
          cin >> a >> b >> c;
          if (abs(a - b) == 1)
          {
              sum++;
          }
      	if (abs(a - c) == 1)
      	{
      	    sum++;
      	}
      	if (abs(b - c) == 1)
      	{
      	    sum++;
      	}
      	if (sum == 2)
      	{
      	    cout << "TRUE";
      	}
      	else 
      	{
      	    cout << "FALSE";
      	}
      	 
          
          
          
          return 0;
      } 
      
      
      
      
      
      
      • @ 2023-4-5 8:05:29

        abs()函数需要头文件

        #include<cmath>
        
    • -1
      @ 2022-12-23 11:40:37

      用函数,不迷路!

      #include <bits/stdc++.h>
      using namespace std;
      int a,b,c,d;
      int main()
      {
      	cin >> a >> b >> c;
      	if (abs(a - b) == 1)
      		d++;
      	if (abs(a - c) == 1)
      		d++;
      	if (abs(b - c) == 1)
      		d++;
      	if (d == 2)
      		cout << "TRUE";
      	else
      		cout << "FALSE";
          return 0;
      }
      
      • @ 2023-3-16 20:50:53

        如果是1,2,1这样的数组,或者1,2,2这样的数组,就不行吧?

      • @ 2023-8-11 20:13:36

        不用写

        return 0;
        
    • -1
      @ 2022-12-4 14:18:53

      调用头文件

      #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
        @ 2022-11-8 16:31:04

        发现没有人和我思路像的,我的思路是用max()min()函数取出最值做极差,如果为2则是连续的数 代码如下:

        #include <iostream>
        using namespace std;
        int main(){
        	int a,b,c,maxx,minx;
        	cin >> a >> b >> c; 
        	maxx = max(max(a,b),c);
        	minx = min(min(a,b),c);
        	if(maxx - minx == 2) cout << "TRUE";
        	else cout << "FALSE";
        	return 0;
        }  
        
        • -1
          @ 2022-10-12 17:44:41

          数据显示,三个数无序。

          如果有序就好办力(悲)

          那就排序罢!大水题,来临力!(喜)

          然后就简单力!(喜)

          cin>>a[0]>>a[1]>>a[2];
          sort(a,a+3);//这都要sort的一个一个一个屑oier
          if(a[2]-a[0]==2&&a[1]<a[2]&&a[1]>a[0])//确认非重复,判定是否连续
              cout<<"TRUE";
          else cout<<"FALSE";
          

          时空复杂度均为O(1),这么低!(恼)

          为什么有sort还是O(1)?因为n恒为3。(悲)

          • -1
            @ 2022-9-12 20:18:58

            这道题一如既往的简单。
            首先输入三个数,用数组来输入。

            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; 
            }
            

            小盆友们,您学会了吗?

            复制? 代码不易,先点赞,再复制吧! (不要忘了删倒数第二行的空格!)

            • @ 2022-10-5 16:13:00

              是“小朋友” 不是“小盆友”👍

          • -1
            @ 2022-8-30 19:52:37
            #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
              @ 2022-8-30 19:48:01
              #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
                @ 2022-8-28 13:55:15

                我们可以先找出三个数中最小的x 运用for循环 再判断另外两个数是不是x+1或x+2

                • -1
                  @ 2022-8-26 19:24:00

                  首先进行初始化(^_^*)

                  #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
                    @ 2022-8-26 19:01:53
                    #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
                      @ 2022-8-26 13:34:59

                      这道题,明显要定义一个长为三的数组 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
                        @ 2022-8-25 18:47:32
                        #include <bits/stdc++.h>
                        using namespace std;
                        int main()
                        {
                            int a[5];
                            cin>>a[1]>>a[2]>>a[3];
                            sort(a+1,a+1+3);//用快排就好了
                            if(a[1]+1==a[2]&&a[2]+1==a[3]) cout<<"TRUE";
                            else cout<<"FALSE";
                            return 0;
                        }
                        

                        快排直接排好序

                        • -1
                          @ 2022-8-20 22:51:08
                          
                          #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
                            @ 2022-8-5 14:20:10
                            {
                                int a,b,c;
                                cin>>a>>b>>c;
                                int x=max(max(a,b),c),z=min(min(a,b),c),y=a+b+c-x-z;
                                if (x-y==1&&y-z==1) cout<<"TRUE";
                                else cout<<"FALSE";
                            }
                            

                            这样子x,y,z是按顺序排好了

                            • -1
                              @ 2022-8-4 20:51:23
                              这一道题其实算是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
                              @ 2022-7-26 22:46:13

                              其实很简单,不一定按顺序就可以通过排序变成一定按顺序,这样判断相邻就简单多了

                              完整代码:

                              #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
                                @ 2022-7-18 18:46:49
                                #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
                                上传者