6 条题解

  • 0
    @ 2025-8-5 11:21:05

    简单,会 log10log_{10} 就会写

    代码:

    #include<iostream>
    #include<cmath>
    #define QwQ return 0;
    using namespace std;
    long long n;
    int main(){
    	cin>>n;
    	int len=floor(1+log10(n));
    	if(n*n%(int)pow(10,len)==n)cout<<"YES";
    	else cout<<"NO";
    	QwQ
    }
    
    • 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
          标签
          (无)
          递交数
          54
          已通过
          40
          上传者