一个整数的个位是7,把7移至最高位上,其他数字顺序不变,新数是原来那个数的7倍。

编程求出满足此条件的最小数。怎么做?快快已知一个正整数的个位数为7,将7移到该数的首位,其它数字顺序不变,则得到的新数恰好是原数的7倍,编程找出满足上述要求的最小自然数... 编程求出满足此条件的最小数。怎么做?

快快
已知一个正整数的个位数为7,将7移到该数的首位,其它数字顺序不变,则得到的新数恰好是原数的7倍,编程找出满足上述要求的最小自然数
展开
longanW
2011-08-06 · TA获得超过103个赞
知道答主
回答量:50
采纳率:0%
帮助的人:61.6万
展开全部
假设满足此条件的数为
10*X+7,设Y=X的位数,则有如下关系
(10*X+7)*7=7*10^Y+X

求出
X=(7*10^Y-49)/69

代入整数Y,当Y值满足X为整数时,即可得出该数,最小应该为1014492753623188405797。
追问
用编程怎么编
追答
这个数比较大,我也不知道该如何处理,下面提供另外一种方法:
已知要求的数A个位数为7,因为其乘以7得到的数B与A正好错一位,因此通过乘法规则求得所有的数。
比如A的十位数应该是7×7/10的余数9,百位数是7×9+int(7×7)的余数7,依此类推,当余数为1且进位为0时,得到的数即可满足,第一次出现时得出的数最小,以下为C语言程序

#include
#include
main()
{
int i=7,j=0,k=0;
int tmp=0;
int Num[100];
Num[0]=7;
for(;!((i==1)&&(j==0));)
{
tmp=7*i+j;
i=tmp%10;
j=tmp/10;
Num[k]=i;
tmp=k;
k++;
}
for(k=tmp;k>=0;k--)
{
printf("%d",Num[k]);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式