5 条题解

  • 0
    @ 2025-6-4 16:04:03

    #include<bits/stdc++.h> using namespace std; long long n,s; int main(){

    cin >> n;
    s=n*n;
    int k=n,i=1;
    while(k!=0){
    	k = k/10;
    	i = i*10;
    }
    if((s-n)%i==0){
    	cout << "YES";
    }
    else{
    	cout << "NO";
    }
    

    return 0; }

    • 0
      @ 2024-12-28 11:58:51

      双倍经验

      #include<bits/stdc++.h>
      #define int unsigned long long
      using namespace std;
      signed main(){
      	int n;
      	cin>>n;
      	int ans1=log10(n)+1,ans2=n*n;
      	while(ans1--){
      		if(ans2%10!=n%10){
      			cout<<"NO";
      			exit(0);
      		}
      		n/=10;
      		ans2/=10;
      	}
      	cout<<"YES";
      }
      
    • 0
      @ 2024-12-24 21:24:02

      好好好 这不就是前面的自守数吗:

      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
      	long long n;
      	cin>>n;
      	long long qwq=n;
      	long long num=1;
      	while(qwq>0)
      	{
      		qwq/=10;
      		num*=10;
      	}
      	if(n*n%num==n)
      	{
      		cout<<"YES";
      	}
      	else
      	{
      		cout<<"NO";
      	}
      	return 0;
      }
      
    • 0
      @ 2024-12-22 11:03:53

      C++ :

      #include<bits/stdc++.h>
      using namespace std;
      long long  n,m,l;
      int a;
      int main()
      {
      cin>>n;
      for(m=1;m<=n;m*=10);
      l=n*n;
      l=l%m;
      if(l==n)
      	cout<<"YES";
      else
      	cout<<"NO";	
      return 0;
      }
      

      Python :

      # coding=utf-8
      n=int(input())
      if 1<n<10:
          t=n*n
          if t%10==n:
              print("YES")
          else:
              print("NO")
      
      if 10<n<100:
          t=n*n
          if t%100==n:
              print("YES")
          else:
              print("NO")
      if 100<n<1000:
          t=n*n
          if t%1000==n:
              print("YES")
          else:
              print("NO")
      if 1000<n<10000:
          t=n*n
          if t%10000==n:
              print("YES")
          else:
              print("NO")
      if 10000<n<100000:
          t=n*n
          if t%100000==n:
              print("YES")
          else:
              print("NO")
      if 100000<n<1000000:
          t=n*n
          if t%1000000==n:
              print("YES")
          else:
              print("NO")
      if 1000000<n<10000000:
          t=n*n
          if t%10000000==n:
              print("YES")
          else:
              print("NO")
      if 10000000<n<100000000:
          t=n*n
          if t%100000000==n:
              print("YES")
          else:
              print("NO")
      
      
      
      • -1
        @ 2024-12-28 15:28:44

        显然重题了。而且题面有误。

        #include<bits/stdc++.h>
        #define int long long
        #define INF 0x3f3f3f
        using namespace std;
        int n;
        signed main(){
        	cin>>n;
        	int s=log10(n)+1;//n的位数
        	int m=n*n;
        	while(s--){
        		if(m%10!=n%10){
        			cout<<"NO";
        			return 0;
        		}
        		m/=10;n/=10;
        	}
        	cout<<"YES";
        	return 0;
        }
        
        • 1

        信息

        ID
        23
        时间
        1000ms
        内存
        128MiB
        难度
        1
        标签
        (无)
        递交数
        47
        已通过
        34
        上传者