6 条题解

  • 1
    @ 2026-1-11 10:48:41
    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    signed main()
    {
    	int n;
    	cin>>n;
    	int nn=n*n;
    	int t=0;
    	int pow=1;
    	while(nn>0)
    	{
    		t+=pow*(nn%10);
    		pow*=10;
    		if(t==n)
    		{
    			cout<<"YES";
    			exit(0);
    		}
    		nn/=10;
    	}
    	cout<<"NO";
    	return 0;
    }
    
    • 0
      @ 2024-12-29 10:06:20

      前面几位大佬的log我不咋懂,所以我直接暴力打出奇迹。 代码:

      #include<bits/stdc++.h>

      using namespace std;

      long long n;

      int main(){

      cin>>n;

      long long num=n*n;

      if(n<10) num%=10;

      else if(n<100) num%=100;

      else if(n<1000) num%=1000;

      else if(n<10000) num%=10000;

      else if(n<100000) num%=100000;

      else if(n<1000000) num%=1000000;

      else if(n<10000000) num%=10000000;

      else if(n<100000000) num%=100000000;

      else if(n<1000000000) num%=1000000000;

      if(num==n) cout<<"yes";

      else cout<<"no";

      return 0;

      }

      • 0
        @ 2024-12-27 21:34:53
        #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-27 21:12:14

          这么水的题目,1919 行代码解决!
          先求出 nn 的位数 kklog10(n)+1,然后记录 mmnnn*n 然后比较它们的后 kk 位是否相同即可。

          代码:

          #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;
          	int m=n*n;
          	while(s--){
          		if(m%10!=n%10){
          			cout<<"NO";
          			return 0;
          		}
          		m/=10;n/=10;
          	}
          	cout<<"YES";
          	return 0;
          }
          
          • 0
            @ 2024-12-22 11:03:52

            C++ :

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

            Python :

            # coding=utf-8
            n=int(input())
            k=n*n
            f=1
            while(n>0):
                if(k%10!=n%10):
                    f=0
                k=k//10
                n=n//10
            if(f==0):
                print('NO')
            else:
                print('YES')
            
            
            • -1
              @ 2024-12-23 13:10:03

              警示后人:十年 OI 一场空,不开 long long 见祖宗。

              虽然但是,思路 be like:

              照着题目干就完了!

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

              信息

              ID
              10
              时间
              1000ms
              内存
              128MiB
              难度
              6
              标签
              递交数
              203
              已通过
              68
              上传者