PAT 1019 General Palindromic Number

这么简单的一道题还折腾半天,晕 


1: 在按进制生成数组时:

while(n > 0){	//只需要res[]来判断palindrome,所以可以逆序
	res[len++] = n%base;
	n /= base;			
}
#include <stdio.h>



int main(){
	int n, b;//n is decimal number, b is the base
	scanf("%d %d", &n, &b);

	int res[30];

	if(n == 0){
		printf("Yes\n");
		printf("0");
	
	}else{
		int base = b;
		int len = 0;

		while(n > 0){	//只需要res[]来判断palindrome,所以可以逆序
			res[len++] = n%base;

			n /= base;			
		}
		
		int flag = 1;
		int i;
		for(i = 0; i < len/2; i++){
			if(res[i] != res[len-1-i]){
				flag = 0;
				break;
			}
		}

		if(flag > 0){
			printf("Yes\n");
		}else{
			printf("No\n");		
		}
		
		for(i = len-1; i > 0; i--){
			printf("%d ",res[i]);	
		}
		printf("%d",res[0]);
	}	
	return 0;
}


你可能感兴趣的:(PAT 1019 General Palindromic Number)