解题思路:
1.首先分析,如果一个十进制数转为七进制和九进制,七进制的三位数反过来正好是九进制的表示,那么七进制的百位和个位都不为0,十位上的数字是可以为0的,而且这三个数字最大是6,因为是七进制,不可能超过7
2.接下来三层for循环进行嵌套判断即可,i,j,k分别表示七进制的百位,十位,个位的数字,如果(i*7*7+j*7+k)==(k*9*9+j*9+i),则输出这三个数即可
- #include
- using namespace std;
- int main()
- {
- for(int i=1;i<=6;i++)//枚举七进制的百位数字
- {
- for(int j=0;j<=6;j++)//枚举七进制的十位数字
- {
- for(int k=1;k<=6;k++)//枚举七进制的个位数字
- {
- if((i*7*7+j*7+k)==(k*9*9+j*9+i))//如果七进制等于九进制
- {
- cout<7*7+j*7+k<
//输入十进制数 - cout<//输出七进制三位数
- cout<
//输出九进制三位数 - return 0;//结束程序
- }
- }
- }
- }
- return 0;
- }