• PAT A1019 General Palindromic Number (20) [回⽂数 进制转换]


    题目链接

    题目链接

    题目

    给定一个十进制数和基数,判断对应进制数是否回文数,并打印
    1 0是回文数
    2 题目中没有标明大于10的进制中字母如何处理,试错发现,并不能将两位数字转化为字母,而是使用两位数字,并且在判断回文和打印时,这个两位数字都看做一个整体

    解题思路

    因为要用两位数字表示基数大于10的进制中大于10的数字,并将这种两位数看做一个整体处理,所以必须使用整型数组,不可使用字符串拼接
    1 进制转换
    2 判断回文

    易错点

    该题目必须使用整型数组,不能使用字符串,因为16进制中不适用字母,而是使用x%p后的两位数字,并且这个两位数字在判断回文和打印时,都是两位为一个整体打印的

    Code

    Code 01

    #include <iostream>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    /*
    	判断任意进制的数是否是回文数
    	
    	注:该题目必须使用整型数组,不能使用字符串,因为16进制中不适用字母,而是使用x%p后的两位数字,
    		并且这个两位数字在判断回文和打印时,都是两位为一个整体打印的 
    	 
    */
    int ans[100],num;
    // 1 判断是否回文
    bool isP() {
    	for(int i=0; i<num; i++) {
    		if(i>=num-1-i)break;
    		if(ans[i]!=ans[num-1-i]) {
    			return false;
    		}
    	}
    	return true;
    }
    // 2 十进制转换为任意进制
    void pt(int x, int p) {
    	int temp;
    	do {
    		temp = x%p;
    		x/=p;
    		ans[num++]=temp;
    	} while(x!=0);
    }
    int main() {
    	//1 输入
    	int n,p;
    	scanf("%d%d",&n,&p);
    	pt(n,p);
    	printf("%s
    ",isP()?"Yes":"No");
    	for(int i=num-1; i>=0; i--) {
    		printf("%d",ans[i]);
    		if(i!=0) printf(" ");
    	}
    	return 0;
    }
    

    Code 02

    #include <iostream>
    #include <string>
    using namespace std;
    /*
    
    请查看错误版本比对,错误在:a%b后可能>9,但并不转换为字母,而是用模的结果两位数字表示
    解决办法:
    1 将每次取模后的数字保存在int数组中
    */
    int main(int argc, char *argv[]) {
    	int a,b;
    	cin>>a>>b;
    	int arr[40], index = 0;
    	while(a != 0) {
    		arr[index++] = a % b;
    		a = a / b;
    	}
    	int p=0,q=index-1;
    	while(p<q) {
    		if(arr[p]!=arr[q])break;
    		else {
    			p++;
    			q--;
    		}
    	}
    	if(p<q)cout<<"No"<<endl;
    	else cout<<"Yes"<<endl;
    	for(int i=index-1; i>=0; i--) {
    		cout<<arr[i];
    		if(i!=0)cout<<" ";
    	}
    	return 0;
    }
    
  • 相关阅读:
    斯托克斯定理(Stokes' theorem)
    记号的认识、公式的理解
    记号的认识、公式的理解
    Python 金融数据分析 (一)—— 股票数据
    Python 金融数据分析 (一)—— 股票数据
    开源项目
    开源项目
    感知机模型及其对偶形式
    感知机模型及其对偶形式
    jni编译non-numeric second argument to `wordlist' function错误
  • 原文地址:https://www.cnblogs.com/houzm/p/13335049.html
Copyright © 2020-2023  润新知