衔接不算个问题。刚修改了上面的一处笔误,时间复杂度是O(n),n表示第几个这样的数。

重剑无锋,大巧不工
程序代码:int ori,now,sign,temp;
for(ori=1;ori<=4;++ori)
{
now=ori;
sign=0;
do
{
printf("%d",now);
temp=(sign*10+now)/2;
sign=now%2;
now=temp;
}
while(now!=ori||sign==1);
printf("\n");
now=ori;
sign=1;
do
{
printf("%d",now);
temp=(sign*10+now)/2;
sign=now%2;
now=temp;
}
while(now!=ori||sign==0);
printf("\n");
}