一个有趣的数学题

sujingmao 2007-03-20 11:45:24
有个六位数,*1,*2,*3,*4,*5,*6得到另外一个六位数仍然是由原来的六个数字组成,只是顺序变了,用C语言求这个六位数。
...全文
240 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
不想低调 2007-03-21
  • 打赏
  • 举报
回复
重复贴。。
mLee79 2007-03-21
  • 打赏
  • 举报
回复
这样好点, 稍微改改可以算7位8位数...

#include <stdio.h>

int gkey(int x){int r=0;while(x)r+=1<<x%10*3,x/=10;return r;}
int main(){
int x,xk;for( x = 100000; x <= 999999/6; ++x ) {
if( (xk=gkey(x))==gkey(x*2)&&xk==gkey(x*3)&&
xk==gkey(x*4)&&xk==gkey(x*5)&&xk==gkey(x*6))
printf("%d\n",x);}
return 0;}
mLee79 2007-03-20
  • 打赏
  • 举报
回复
最无趣的写法 :

#include <stdio.h>

int gkey( int x ){
static const int XX = 6,XX2=XX*XX,XX4=XX2*XX2,rt[]={1,
XX,XX2,XX2*XX,XX4,XX4*XX,XX4*XX2,XX4*XX2*XX,XX4*XX4,XX4*XX4*XX};
int r = 0;while(x) r+=rt[x%10],x/=10;return r;}
int main(){
int x,xk;for( x = 100000; x <= 999999/6; ++x ) {
if( (xk=gkey(x))==gkey(x*2)&&xk==gkey(x*3)&&
xk==gkey(x*4)&&xk==gkey(x*5)&&xk==gkey(x*6))
printf("%d\n",x);}
return 0;}

mLee79 2007-03-20
  • 打赏
  • 举报
回复
142857

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧