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