100c之20:奇怪的三位数
1 问题
一个自然数的七进制表示是一个三位数,九进制表示也是一个三位数,这两个三位数顺序正好相反求这个三位数。
2 分析
可以采取穷举的方法。 穷举范围是三位九进制能表示的最小数($1117$=91)到三位七进制表示的最大整数($8889$=340)
3 解决方案
1: /** 2: * @file 020strangethreedigit.c 3: * @author Chaolong Zhang <emacsun@163.com> 4: * @date Mon May 20 21:17:24 2013 5: * 6: * @brief 一个自然数的七进制表示是一个三位数,九进制表示也是一个三位数,这两个三位数顺序正好相反求这个三位数。 7: * 8: * 9: */ 10: 11: #include <stdio.h> 12: 13: int main(int argc, char *argv[]) 14: { 15: int n; 16: for (n=91; n <= 340; ++n) /// 九进制的最小数 111= 91;七进制最大数 666= 340 17: { 18: if ( (n%7 == n/81) && (n%9 == n/49) && ((n/7)%7 == (n/9)%9 ) ) 19: { 20: printf ("%d%d%d(7)=%d%d%d(9)=%d\n",n/49,(n/7)%7,n%7,n/81,(n/9)%9,n%9,n ); 21: } 22: else 23: continue; 24: } 25: return 0; 26: }