1 条题解

  • 0
    @ 2023-6-11 12:18:08

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    //判断整数n在m进制下是否是回文数
    bool huiwen(int n,int m){
    	int a[1000] = {0};
    	int k,i;
    	bool r = true;
    	
    	k = 0;//a数组的下标
    	while(n != 0){
    		a[k] = n % m;
    		k++;
    		n = n / m; 
    	}
    	
    	//遍历a数组,判断回文
    	for(i = 0;i < k / 2;i++){
    		if(a[i] != a[k - i - 1]){
    			r = false;
    			break;
    		}
    	} 
    	
    	return r;
    }
    
    
    int main(){
    	int n,m,i,c = 0;
    	cin>>n>>m;
    	
    	for(i = 1;i <= n;i++){
    		if(huiwen(i * i,m)){
    			c++;
    		}
    	}
    	
    	cout<<c<<endl;
    	
    	return 0;
    }
    
    
    

    Python :

    sr=input().split()
    n=int(sr[0])
    m=int(sr[1])
    js=0
    for i in range(1,n+1):
        k=i*i
        a=""
        while(k!=0):
            if(k%10>=10):
                a=chr(k%m-10+ord("A"))+a
            else:
                a=chr(k%m+ord("0"))+a
            k=k//m
        s=""
        for j in range(len(a)):
            s=a[j:j+1]+s
        if(s==a):
            js=js+1
    print(js)
    
    • 1

    信息

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