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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
循环简单示例——abcd*9=dcba系列
四位数的abcd*9=dcba用笔也能很快算出来,那么五位数的呢,六位数的呢。用简单的嵌套for循环的代码如下: public class Way{ public static void main(String args[]){ for(int a=0;a<10;a++){ for(int b=0;b<10;b++){ for(int c=0;c<10;c++){
ABCD*9=DCBA 问A、B、C、D各得多少???
http://zhidao.baidu.com/link?url=q8tDeK3L7fLgEa-CgM6CzPy73RQ8xpG_3Qd3KCWkYkl8R_67JuRzJ_7B2FODweZZiZW-xMvDnOEs-pkM1J9pd_ ABCD*9=DCBA 问A、B、C、D各得多少??? 2006-03-04 17:41609613005 | 分类:中考 | 浏览5325
ABCD*9=DCBA 问A、B、C、D各得多少
小数题目啊,当年我爹出给我做的时候,还觉得很难的。。。 ABCD= 1089
java实现字符串的反转 (如:输入abcd 输出dcba)见例解
public static void test08(String str) {         String newString="";         for (int i = 0; i             newString=newString+str.charAt(str.length()-1-i);         }         System.out.println(
打印数字 编程求一个四位自然数ABCD,它乘以A后变成DCBA;
#include int main(int argc, const char * argv[]) {     //4.1 打印数字     //编程求一个四位自然数ABCD,它乘以A后变成DCBA;     int ABCD;     int A,B,C,D;     int DCBA;      //for方法实现     for
实现字符串的反转 输入"abcd" 输出dcba
public class test11 { public static void main(String[] args) { String ss=convertString(“abcdef”); System.out.println(ss); } /* * 实现字符串的反转 输入”abcd” 输出dcba */ publi
把一个字符串倒序,如“abcd”倒序后变为“dcba”
<br />方法一:<br />char*src="hello,world";<br />int len=strlen(src);<br />char*dest=(char*)malloc(len+1);//要为/0分配一个空间<br />char*d=dest;<br />char*s=&src[len-1];//指向最后一个字符<br />while(len--!=0)<br />*d++=*s--;<br />*d=0;//尾部要加/0<br />printf("%s/n",dest);<br />f
试推理:ABCD*4 = DCBA
ABCD是一个四位整数,它的逆序为DCBA,试推理求出ABCD使得ABCD*4 =
算法练习--ABCD*E=DCBA
算法练习--ABCD*E=DBCA
ABCD*E=DCBA
ABCD*E=DCBAE 为 4由 A 小于 D,和 D * E % 10 = A,和 A * E 2BC8 * 4 = 8CB2,由左数第二位推知,B 只能为 0、1、2,B 为 0,得 4C % 10 = 7,无解,B 为 2,同,故 B = 1,则 4C % 10 = 8,C 为 2 或 7。可推知 C 为 7。2178 * 4 = 8712。