zoj 1078 Palindrom Numbers

来源:互联网 发布:形势与政策 网络强国 编辑:程序博客网 时间:2024/04/27 03:23
#include "iostream"#include "string"#include "vector"using namespace std;int main(){int num, i;vector<int> v;while (cin >> num && num){v.clear();for (i = 2; i < 17; i++)//从2到16进制的数进行相除,求出进制的表示法{int temp = num, temp1, length;string str = "";while (temp)//求进制数,并将进制数表示为字符串的形式!{temp1 = temp % i;str += (temp1 + 48);temp /= i;}length = str.size();if (length % 2 == 0)//下面就字符串进行判断,判断是否为回文字符串!如果是,就将i保存在V容器中{int flag = 0;for (int j = 0; j < length / 2; j++){if (str[j] != str[length - 1 - j]){flag = -1;break;}}if (flag == 0)v.push_back(i);}else{int flag = 0;for (int j = 0; j < (length-1)/2; j++){if (str[j] != str[length - 1 - j]){flag = -1;break;}}if (flag == 0)v.push_back(i);}}int size = v.size();//结果的输出!if (size){cout << "Number " << num << " is palindrom in basis";for (int q = 0; q < size; q++)cout << " " << v[q] ;cout << endl;}elsecout << "Number " << num << " is not a palindrom" << endl;}}

 
原创粉丝点击