1019. General Palindromic Number
题意:求数N在b进制下其序列是否为回文串,并输出其在b进制下的表示。
思路:模拟N在2进制下的表示求法,“除b倒取余”,之后判断是否回文。
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int Base[30]; 5 int main() 6 { 7 int n, b; 8 scanf("%d%d", &n, &b); 9 int len = 0, tmp = n,yu=tmp%b; 10 while (tmp / b) 11 { 12 Base[len++] = yu; 13 tmp = tmp / b; 14 yu = tmp % b; 15 } 16 Base[len++] = yu; 17 bool flag = true; 18 for (int i = 0, j = len - 1; i <= j&&flag; i++, j--) 19 { 20 if (Base[i] != Base[j]) flag = false; 21 } 22 if (flag) printf("Yes\n"); 23 else printf("No\n"); 24 for (int i = len - 1; i >= 0; i--) 25 { 26 printf("%d", Base[i]); 27 if (i) printf(" "); 28 } 29 printf("\n"); 30 return 0; 31 }