一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。

    技术2025-11-12  3

    这又是一个数字问题的代码化,首先解释里面的几个概念并用数学的方法将这个三位数推导出来. 数码:数的基本单元,也就是数字.例如123和321二者分别含有三个数码,且数码顺序相反。 进制:可看作是特殊进制转换为默认进制(10进制)时的底数。 数学推导: 由上述数学推导过程可知,函数体内的判断条件即是七进制和九进制化为十进制时二者相等,而这需要在所有符合七进制(七和九取并集)的三位数内进行筛选,而七进制遇七进一的特点就是突破口.

    for(i=1;i<7;i++) for(j=0;j<7;j++) for(k=1;k<7;k++) if(i*9*9+j*9+k==i+j*7+k*7*7)

    另外注意三位数的组成情况,因为二者数码顺序无论是正还是反都是正常的三位数,所以两端都不可以取0. 完整代码如下:

    #include<stdio.h> int main() { int i,j,k; for(i=1;i<7;i++) for(j=0;j<7;j++) for(k=1;k<7;k++) if(i+j*7+k*7*7==i*9*9+j*9+k) { printf("这个奇异的三位数是(括号内是进制):\n"); printf("%d%d%d(7)=%d%d%d(9)=%d(10)\n",k,j,i,i,j,k,i*9*9+j*9+k); } }

    这个题对数学知识的考察要大于C语言基础内容的考察,只要进制之间的关系搞懂,那么代码化就迎刃而解了. 对我的博客或其他方面有任何见解或问题的话都可以私信我 或者联系本人QQ:3128909688 微信:DreamHerome 欢迎致电

    Processed: 0.010, SQL: 9