2 sinat 30611307 sinat_30611307 于 2016.01.18 14:06 提问

abcd*9=dcba 用Java如何解出?

abcd*9=dcba 求解abcd,用Java如何解出?求各位指教。

6个回答

91program
91program   Ds   Rxr 2016.01.18 14:19

例如:1) a 只可能是 0 或者 1,否则乘以 9 不可能还是 4 位数。如果中零,则不会是 abcd、而是 bcd。所以 a = 1;
2) 9 乘以 几,最后是 1,只有 9;所以 d = 9;
3) 。。。。
如果你不想这样,因为它靠程序来实现不太现实。!

你可以考虑从 1000 到 1200、或者 a/b/c/d 可以为零时,从 0 到 1200 循环,再将 abcd 这个数通过 % 和 / 取出各个位数上的数字,计算得到 dcba.
验证 *9 后是否相等就可以得到你想要的结果 。

wojiushiwo945you
wojiushiwo945you 回复毕小宝:手误,sorrry。本意为: 我当年的数学知识。
接近 2 年之前 回复
wojiushiwo945you
wojiushiwo945you 分析准确,佩服。当你的数学知识都还给老师了。
接近 2 年之前 回复
91program
91program   Ds   Rxr 2016.01.18 14:12

这不是 Java 的问题,是你要想如何解,Java 只是一个实现的工具。

rui888
rui888   Ds   Rxr 2016.01.18 14:16

不考虑复杂度,套循环 1089 *9

u011339641
u011339641   2016.01.18 17:32

for(a=0;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
for(d=0;d<10;d++)
if((a*1000+b*100+c*10+d)*9 == (d*1000+c*100+b*10+a))
print a,b,c,d;
这个才是java的做法(不要带入主观的分析),什么都不要考虑,每个数字循环0~9;判断一下即可

u011339641
u011339641   2016.01.18 17:32

for(a=0;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
for(d=0;d<10;d++)
if((a*1000+b*100+c*10+d)*9 == (d*1000+c*100+b*10+a))
print a,b,c,d;
这个才是java的做法(不要带入主观的分析),什么都不要考虑,每个数字循环0~9;判断一下即可

Royal_lr
Royal_lr   Ds   Rxr 2016.01.19 10:33

首先自己能用算法解出来的话,,直接用程序就能实现了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!