入门模拟-进制转换-1019 General Palindromic Number (20分)

1019 General Palindromic Number (20分)

题意:
输入一个十进制数和一个数制
判断转换数制后的数的序列是否为回文序列。

Sample Input 1:
27 2
Sample Output 1:
Yes
1 1 0 1 1
Sample Input 2:
121 5
Sample Output 2:
No
4 4 1

#include <stdio.h>
#include <math.h> 
#include <stdlib.h> 
#include <string.h> 
#include <iostream>
using namespace std; 
const int MAXN = 100;

int main()
{
	//freopen("c:\\Users\\mi\\Desktop\\C\\tmp\\ST.txt", "r" , stdin);
	
	int D,Scale,Q[MAXN],num=0;
	int flag =0;
	
	scanf("%d %d" , &D,&Scale);
	
	while(D!=0){
		Q[num++] = D%Scale;
		D /= Scale;
	}
	
	int num2 = num;
	
	for(int i=0 ; i<num/2 ; i++){
		if(Q[i] != Q[num-1 - i]){
			flag = 1;
		}
	}
	
	if(flag){
		printf("No\n");
	}else printf("Yes\n");
	
	for(int i=num2-1 ; i>=0 ;i--){
		i?printf("%d ",Q[i]):printf("%d",Q[i]);
	}
	return 0;
}

十进制取余顺序放入数组,每次结束后 除 数制,直到0结束,计组的内容。

回文判断就利用对称下标来判断是否 == 即可。
然后标志输出,或者提取成函数返回true或false。

num在循环最后一次的时候还会自加一次
因此逆序输出转换后的序列以及回文判断的时候要提前减一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值