1019. General Palindromic Number (20)

来源:互联网 发布:广州知途科技有限公司 编辑:程序博客网 时间:2024/06/14 02:02

1.采用求余的方式转换成以radix为基数的数

2.使用vector<int>来存储底数,因为后面需要以底数的形式显示,而不是以位的形式显示

print N as the number in base b in the form "ak ak-1 ... a0".

3.注意输入为0的情况

//#include<string>//#include <iomanip>#include<vector>#include <algorithm>//#include<stack>#include<set>#include<queue>#include<map>//#include<unordered_set>//#include<unordered_map>//#include <sstream>//#include "func.h"//#include <list>#include<stdio.h>#include<iostream>#include<string>#include<memory.h>#include<limits.h>using namespace std;int main(void){long long number, radix;cin >> number >> radix;vector<int> base(0);if (number == 0) base.push_back(0);while (number != 0){//余数很有可能超过c的范围,例如999%1000=999base.push_back(number%radix);number /= radix;}bool ans = true;for (int i = 0; i < base.size() / 2; i++){if (ans && base[i] != base[base.size() - 1 - i])//判断回文ans = false;swap(base[i], base[base.size() - 1 - i]);//求出来的底数是倒序的}if (ans)cout << "Yes" << endl;elsecout << "No" << endl;for (int i = 0; i < base.size(); i++){cout << base[i];if (i != base.size() - 1)cout << " ";}cout << endl;return 0;}



0 0
原创粉丝点击