37 条题解

  • 34
    @ 2022-8-13 21:21:25

    今天依然是分享两种方法,因为今天的标签是分支问题,所以我更喜欢第一种方法


    方法①

    1. 用万能开头文或者 cmath 头文件
    2. 定义 double 型的变量 n,并输入
    3. 用 sqrt(某数) 函数可以得出某数的开平方,开平方就是把两个一样的数相乘等于另一个数,就叫做另一个数的开平方
    4. 注意,如果不是整数要用向下取整可以用到 floor(某数) 函数,可以实现向下取整,再和原数进行判断即可

    上代码吧!(况且下面的哥们有个地方还写错了……)

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        double n;
    	cin >> n;
        if (floor(sqrt(n)) == n) cout << "Y";
        else cout << "N";
    	return 0;
    }
    

    方法②

    1. 可以运用 for 循环语句来做
    2. 依次便利从 1 ~ n 的值,如果 i * i == n 那么直接输出 Y ,并且结束代码运行
    3. 如果知道循环结束都没有打印,说明没有平方数,那么就在循环外打印 N 并且结束代码运行

    上代码!* 2

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n;
    	cin >> n;
        for(int i = 1; i <= n; i++)
        {
            if (i * i == n)
            {
                cout << "Y";
                return 0;
            }
        }
        cout << "N";
    	return 0;
    }
    
    • @ 2022-9-1 20:12:24

      孩子,你会用sqrt吗?第一个程序明显有问题啊,也许你能过测试点但也不能害了别人。sqrt()是求平方根的。

    • @ 2023-6-18 7:54:14

      @题目中说了,平方数是指开平方根后是整数的数

  • 7
    @ 2023-8-23 10:19:43
    #include <iostream>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;//输入
        for (int i=1;i<n;i++)
        {
            if (i*i==n)//判断平方数
            {
                cout<<"Y";//输出Y
                return 0;//结束程序
            }
        }
        cout<<"N";//输出N
        return 0;
    }
    

    编程不易😕 ,赞在哪里👀️ ?

    • 5
      @ 2023-8-18 12:54:44
      #include <iostream>
      using namespace std;
      int main()
      {
          int n;
          cin >> n;
          for (int i = 1; i < n; i++)
          {
              if (i * i == n)
              {
                  cout << "Y";
                  return 0;
              }
          }
          cout << "N";
          return 0;
      }
      

      这道题还是比较简单的瓦(

      • 5
        @ 2023-8-4 18:39:51

        哈喽哇,这又㕛叒叕是一道数学题啊

        来来来,上新手都能看懂的代码🚀️

        #include <bits/stdc++.h>
        using namespace std;
        int main()
        {
            int s = 0 , n;
            cin >> n;
            for (int i = 0; i <= n; i++)
            {
                if (i * i == n)//如果一个数的平方是n,那n就是平方数
                {
                    cout << "Y";
                    s = 1;
                    break;//知道n是平方数之后就不需要继续遍历了,直接跳出循环
                }
            }
            if (s != 1) cout << "N";//如果循环完毕都没有找到n的算术平方根,那么它就不是平方数啦
            return 0;
        }
        

        点赞之后再食用吧

        • @ 2023-8-11 20:00:26

          《又双叒叕》

        • @ 2023-8-16 12:43:21

          @ 生僻字好听吗

        • @ 2023-8-23 13:55:29

          @ 意思就是说又又又又又又又又又又是一道数学题

        • @ 2024-1-18 20:14:14

          #include <iostream> using namespace std; int main() { cout << "N"; return 0; }

          我这也行,AC

        • @ 2024-1-18 20:14:47

          #include <iostream> using namespace std; int main() { cout << "N"; return 0; }

      • 4
        @ 2022-9-1 20:08:53

        推荐:多用点系统函数能让写和执行程序快几倍。

        #include <bits/stdc++.h>
        using namespace std;
        int n;
        int main()
        {
        	cin >> n;
        	if(int(sqrt(n))*int(sqrt(n))==n) cout << "Y";//sqrt,求平方根,强转为int。
        	else cout << "N";
        	return 0;
        }
        
        • 3
          @ 2023-11-26 9:22:33
          #include<iostream>
          using namespace std;
          int main(){
           	int n;
           	cin>>n;
           	for(int i=1;i<=n/3+1;i++){
          	 	int m=i*i;
          	 	if(m==n){
          		 	cout<<'Y';
          		 	return 0; 
          		 }
          	 }
          	cout<<'N';
           	return 0;
           }
          
          • 2
            @ 2024-2-4 19:18:46

            老样子,先点赞,后看代码

            #include <bits.stdc++.h>
            using namespace std;
            int main()
            {
                int n;
                cin >> n;
                for (int i = 1;i <= n;i++)//用循环求平方根
                {
                    if (i * i == n)
                    {
                        cout << "Y";
                        return 0;//以防万一后面连续输出
                    }
                    else
                    {
                        cout << "N";
                        return 0;//这也一样
                    }
                }
            }
            
            • 2
              @ 2024-1-18 20:09:39
              #include <iostream>
              using namespace std;
              int main()
              {
                  int a;
                  cin >> a;
                  for (int i = 1;i <= a;i++)
                  {
                      if (a % i == i)
                      {
                          cout << "Y";
                          return 0;
                      }
                  }
                  cout << "N";
                  return 0;
              }
              

              AC

              • 2
                @ 2023-12-17 20:41:17
                #include <bits/stdc++.h>
                using namespace std;
                int main()
                {
                    int n,i = 0;
                    cin >> n;
                    bool f = false;
                    while(i <= n)
                    {
                        if(i*i == n)
                        {
                            f = true;
                            break;
                        }
                        i++;    
                    }
                    if(f)
                    {
                        cout << "Y";
                    }
                    else
                    {
                        cout << "N";
                    }
                }
                

                while循环和布尔类型,轻松找回自信。

                • 2
                  @ 2023-10-28 21:34:53

                  #include <bits/stdc++.h> using namespace std; int main() { double n; cin >> n; if (floor(sqrt(n)) == n) { cout << "Y"; } else { cout << "N"; } return 0; }

                  • 2
                    @ 2023-9-9 21:00:30
                    #include<iostream>
                    int main(){std::cout<<"N";}
                    

                    这才是全网最短代码

                  • 2
                    @ 2023-8-25 17:56:38

                    当我们做错了,又看到只有一个测试点,那就试,看记录,记录会指出正确答案 所以方法一:

                    #include <bits/stdc++.h>
                    int main(){std::cout<<"N";}
                    

                    当然,投机取巧是不对的,我们应当掌握方法,用for循环测试他就可以出答案

                    #include <bits/stdc++.h>
                    using namespace std;
                    
                    int main(){
                        int n;cin>>n;
                        for (int i = 1; i < n; i++)
                        {
                            if (i * i == n)
                            {
                                cout << "Y";
                                return 0;
                            }
                        }
                        cout << "N";
                    }
                    

                    sqrt函数吗……因为我太懒,所以懒得写。嘿嘿。 Thanks for watching.

                    • 2
                      @ 2023-8-13 15:35:13

                      哥们儿,没有十年脑血栓想不出来啊👼👼🏻👼🏼👼🏽👼🏾👼🏿(((φ(◎ロ◎;)φ)))

                      #include <bits/stdc++.h>
                      using namespace std;
                      int main()
                      {
                          long long n;
                          cin>>n;
                          if (sqrt(n)*sqrt(n)==n)
                          {
                              cout<<'Y';
                          }
                          else 
                          {
                              cout<<'N';
                          }
                          return 0;
                      }
                      
                      • 2
                        @ 2023-8-5 21:14:08

                        sprt取平方根

                        #include <iostream>
                        #include <cmath>
                        using namespace std;
                        int main()
                        {
                            int n;
                            double p;
                            cin>>n;
                            p=sqrt(n);
                            if (int(p)==p) cout<<"Y";
                            else cout<<"N";
                            return 0;
                        }
                        
                        • 1
                          @ 2024-2-23 16:50:24
                          #include <bits/stdc++.h>
                          using namespace std;
                          int main()
                          {
                              int n,i,f=0;
                              scanf("%d",&n);
                              for(i=1;i<n;i++)
                              {
                                  if(i*i==n)
                                  {
                                      f=1;
                                  }
                              }
                              if(f==1)
                              {
                                  cout<<'Y';
                              }
                              else
                              {
                                  cout<<'N';
                              }
                              return 0;
                          }
                          
                          • 1
                            @ 2024-2-14 23:40:07
                            #include <iostream>
                            using namespace std;
                            int main()
                            {
                                int n;
                                cin>>n;
                                for (int i=1;i>=0;i++)
                                {
                                    if (i+i==n)
                                    {
                                        cout<<"Y";
                                        break;
                                    }
                                    if (i*i>n)
                                    {
                                        cout<<"N";
                                        break;
                                    }
                                }
                                return 0;
                            }  已AC~
                            
                            • 1
                              @ 2023-8-23 13:51:59
                              #include <iostream>
                              using namespace std;
                              int main()
                              {
                                  int n,c=0;
                                  cin >> n;
                                  for (int i=1;i<=n;i++)
                                  {
                                      if (i*i==n)
                                      {
                                          c++;
                                          break;
                                      }
                                  }
                                  if (c==1)
                                  {
                                      cout << "Y";
                                  }
                                  else
                                  {
                                      cout << "N";
                                  }
                                  return 0;
                              }
                              点个赞吧!已AC✔~
                              可复制❄~
                              
                              • 1
                                @ 2023-6-29 22:44:38
                                for (int i=0;i<=sqrt(n);i++){    //循环
                                        if (i*i!=n)
                                            a=false;
                                        else a=true;
                                    }                      //判断
                                
                                • 0
                                  @ 2023-12-3 13:57:12

                                  `

                                  #include <bits/stdc++.h>
                                  using namespace std;
                                  int main()
                                  {
                                      int n;
                                      bool m = 0;
                                      cin >> n;
                                      for (int i = 1; i <= n; i++)
                                      {
                                          if (i * i == n)
                                          {
                                              m = 1;
                                          }
                                      }
                                      if (m == 1)
                                      {
                                          cout << "Y";
                                      }
                                      else
                                      {
                                          cout << "N";
                                      }
                                      return 0;
                                  }
                                  

                                  感觉其他人用的方法好高级,学不废

                                  • 0
                                    @ 2023-11-25 22:11:16

                                    挑战全网最简代码

                                    #include <bits/stdc++.h> 
                                    using namespace std;
                                    int main()
                                    {
                                        cout<<"N";
                                        return 0;
                                    }
                                    

                                    信息

                                    ID
                                    1114
                                    时间
                                    1000ms
                                    内存
                                    64MiB
                                    难度
                                    2
                                    标签
                                    递交数
                                    2470
                                    已通过
                                    1466
                                    上传者