缘由双进制回文数,一道C++程序题,求解!!!?_编程语言-CSDN问答
int 合成100回文(int 数)
{ int 合 = 0, 倒 = 数>10 && 数 < 100 ? 数 / 10 : 数;while (倒)合 *= 10, 合 += 倒 % 10, 倒 /= 10, (合 ? 数 *= 10 : 0);return 数 + 合;
}
int 整数倒序(int 数)
{ int 倒序 = 0, 倒 = 数;while (倒)倒序 *= 10, 倒序 += 倒 % 10, 倒 /= 10;return 倒序;
}
int 十转二进制(int 数)
{ int 二进制 = 0, 十 = 数;if (!(十 % 2))return 0;while (十) 二进制 *= 10, 二进制 += 十 % 2, 十 /= 2;return 二进制;
}int a = 0, 回文 = 0, 二进制 = 0;while (++a <= 100)if ((二进制 = 十转二进制(回文 = 合成100回文(a))) == 整数倒序(二进制) && 二进制)cout << 回文 << ":" << 二进制 << endl;