1 条题解

  • 0
    @ 2023-6-11 12:16:47

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    //求一个整数n的x进制是否是回文
    bool huiwen(int n,int x){
    	int a[100];//存储n的2进制
    	int k = 0,i; //k用来作为数组下标
    	while(n != 0){
    		a[k] = n % x;
    		n = n / x;
    		k++;
    	} 
    	
    	bool r = true;
    	for(i = 0;i < k/2;i++){
    		if(a[i] != a[k-i-1]){
    			r = false;
    			break;
    		}
    	}
    	
    	return r;
    } 
    
    int main(){
    	int a[100],n,i;
    	cin>>n;
    	for(i = 0;i < n;i++){
    		cin>>a[i];
    	}
    	
    	for(i = 0;i < n;i++){
    		//如果a[i]不是回文,且a[i]的2进制或16进制是回文,则是半个回文数
    		if(huiwen(a[i],10) == false && (huiwen(a[i],2) == true || huiwen(a[i],16) == true)){
    			cout<<a[i]<<endl;
    		} 
    	}
        return 0;
    }
    
    
    • 1

    信息

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