如果把一个数的末位和首位互换,其余不变,结果为原数的两倍,求解

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:39:51

设原数为x,a是它的最后一位数字,n是这个数的位数,则移过之后为
(x-a)/10+a*10^(n-1)
由题意
(x-a)/10+a*10^(n-1)=2x
x-a+a*10^n=20x
19x=(10^n-1)a
a是一位数,不可能是19的倍数,所以10^n-1必须是19的倍数。
1/19是一个18位的循环小数。
由此推出1000000000000000000除以19的余数为1
n=18,10^n-1=999999999999999999(18个9)
52631578947368421a=x
因为n=18,是一个18位数,所以a不等于1
取a=2到9,得到8个答案。
105263157894736842
157894736842105263
210526315789473684
263157894736842105
315789473684210526
368421052631578947
421052631578947368
473684210526315789
这是18位数的所有答案,下一批答案就是36位数了,很简单,就把上面的单元重复两遍,再下面是54位数,以此类推

不可能有这样的数字
原因:设这个数字为A......B,A<B
那么,掉过来之后就是B......A
有(B......A)-(A......B)=A......B
尾数为10+A-B=B,2B=10+A...(1)
首数为B-A=A,B=2A,代入(1)得:4A=10+A,3A=10,A只能为整数,所以无解;
或者B-1-A=A,B=2A+1,代入(1)得:4A+2=10+A,3A=8,A只能为整数,所以无解;
本题重点在于掌握方法.方法掌握了,问题就解决了.

不可能!!

一个三位数首位数是1,把首位数移到末位,其余数字不变,得到的新三位数字比原三位数大153,求这个三位数. 一个数的首位是1,若把它的首位数字放在末位,所得的四位数比原数的四倍多______,求原来的四位数. 把一个正整数的末位去掉,使这个数变成原来数的1/12倍 怎么求??? 用C++编程:输入一个大于3位的整数,将它的十位数和百位数互换位置 有个6位数,把首位和末尾互换一下,新数是旧数的4倍,是哪6位数? 有一个数,它的末尾是2。如果把它移动到首位上。正好是原数的二倍。问原数是多少? 有这样一个数,把它的最后一位的数字移到首位,新数正好是原数的两倍,求原数? 把一个数的个位提到首位.所得的数就变成这个数的3倍.问这个数是多少?? 一个数把尾数移到首位 这个数比原来大2问这个数是什么 有一个正整数是7位数,他的首位数是5,若把5移动末尾,原数就是新数的3倍.