91 条题解

  • 72
    @ 2022-8-25 18:50:12
    #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)👍

  • 16
    @ 2023-8-13 20:40:48
    #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
      @ 2022-7-12 12:50:57

      很明显,这道题需要一个长度为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";
      

      就这么简单!

    • 11
      @ 2023-8-20 10:47:08
      #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过关的,放心用。(作者注:创作不易,给个赞赞吧!!!👀️)
      
      • 9
        @ 2023-8-18 21:47:56

        不会吧,这么简单 应该都会吧......(先 后看!养成习惯!)

        #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 image

      • 3
        @ 2023-8-17 22:05:36

        新手解题思路在此

        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
          @ 2024-6-10 11:41:50

          高级的做法


          #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
          @ 2024-1-10 20:11:06

          赞 -> 看 懂?

          这题瓦看别人大多都用的最大/最小值

          所以瓦就用的排序法(因为看不懂

          这里瓦用的冒泡排序

          冒泡排序核心代码如下

          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
            @ 2024-5-4 21:18:05

            代码多但易懂

            #include <iostream>
            using namespace std;
            int main()
            {
                int a,b,c,num=0;
                cin>>a>>b>>c;
                if(a+1==b)
                {
                    if(b+1==c)
                    {
                        num++;
                    }
                    if(a-1==c)
                    {
                        num++;
                    }
                }
                if(a+1==c)
                {
                    if(c+1==b)
                    {
                        num++;
                    }
                    if(a-1==b)
                    {
                        num++;
                    }
                }
                if(num>=1)
                {
                    cout<<"TRUE";
                }
                else
                {
                    cout<<"FALSE";
                }
                return 0;
            }
            
            • 1
              @ 2024-4-24 19:13:15

              一种使用列表,而不需要复杂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
                @ 2024-3-23 16:48:09

                可以先从小到大排好序,再判断是不是连续的。 我的代码不是最简便的。

                if (a > b)
                {
                    int k = a;
                    a = b;
                    b = k;
                }
                if (b > c)
                {
                    int k = b;
                    b = c;
                    c = k;
                }
                if (a > b)
                {
                    int k = a;
                    a = b;
                    b = k;
                }
                if (a + 1 == b && b + 1 == c)
                {
                    cout << "TRUE";
                }
                else
                {
                    cout << "FALSE";
                }
                
              • 1
                @ 2024-2-23 22:46:05

                这道题太《容易》了,谁帮帮我!!!!!

                • 1
                  @ 2024-2-4 13:21:03
                  #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
                    @ 2024-1-31 14:27:58

                    点个赞吧😄

                    #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
                      @ 2024-1-30 20:39:32

                      直接上代码😄


                      #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
                      

                      image image

                      • 1
                        @ 2023-8-30 10:11:46

                        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
                        @ 2023-8-16 10:02:13

                        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
                          @ 2023-8-14 11:51:34
                          #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
                            @ 2023-8-8 9:40:30

                            新手上路,请多关照!

                            #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
                            @ 2023-8-5 16:49:56

                            三个相邻的整数最大数和最小数之差为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
                          标签
                          递交数
                          10083
                          已通过
                          2948
                          上传者