// 求满足等式 AB+CD=DC的所有A,B,C,D,且,A,B,C,D,必须为一位的自然数(A,B,C,D不能为0)
我有一段代码如下:
public class Demo2
{
public static void main (String args[])
{
for (int A=1;A<=9 ;A++ )
{
for (int B=1;B<=9 ;B++ )
{
for (int C=1; C<=9;C++ )
{
for (int D=1;D<=9 ;D++ )
{
int R=(A*10+B)+(C*10+D); 
if ( R == (D*10+C)       )
{
        System.out.println ("式子:"+A+B+"+"+C+D+"="+R);
}
}
}
}
}
}
}
输出是这样的:
9+13=31
9+24=42
9+35=53
9+46=64
9+57=75
9+68=86
9+79=97
9+14=41
9+25=52
9+36=63
9+47=74
9+58=85
9+69=96
9+15=51
9+26=62
9+37=73
9+48=84
9+59=95
9+16=61
9+27=72
9+38=83
9+49=94
9+17=71
9+28=82
9+39=93
9+18=81
9+29=92
9+19=91
但是如果我把代码改为如下,结果就大不一样:public class Demo2
{
public static void main (String args[])
{
for (int A=1;A<=9 ;A++ )
{
for (int B=1;B<=9 ;B++ )
{
for (int C=1; C<=9;C++ )
{
for (int D=1;D<=9 ;D++ )
{
int R=(A*10+B)+(C*10+D); 
if ( R == (D*10+C)       )
{
        System.out.println (A+B+"+"+C+D+"="+R);//原为  System.out.println ("式子:"+A+B+"+"+C+D+"="+R);
}
}
}
}
}
}
}
这样输出的结果就是:
9+13=31
9+24=42
9+35=53
9+46=64
9+57=75
9+68=86
9+79=97
9+14=41
9+25=52
9+36=63
9+47=74
9+58=85
9+69=96
9+15=51
9+26=62
9+37=73
9+48=84
9+59=95
9+16=61
9+27=72
9+38=83
9+49=94
9+17=71
9+28=82
9+39=93
9+18=81
9+29=92
9+19=91
我想知道,为什么在A的前面加入和删去字符串会对输出的结果有这么大的影响.恳请高手为小菜我详细解答一下,分不多,望见谅.

解决方案 »

  1.   

    从左向右!先将“试子”+A 变成了一个新的字符串,再加B,还是一个字符串连接!
    如果一开始A+B两个都是数字,做加法运算!
      

  2.   

    System.out.println (A+B+"+"+C+D+"="+R);
     这个式子先把A和B相加,结果为整型,再把这个整型与“+”相加才变为字符串。
    System.out.println ("式子:"+A+B+"+"+C+D+"="+R);
     一开始就是字符串相加。
      

  3.   

    假定:A=0,B=9,C=1,D=3①先看这句:
    System.out.println (A+B+"+"+C+D+"="+R);运算的时候从左到右:
    A+B=9,此时数学运算相加,
    下边是数字和字符串相加得到9+"+"="9+";
    此时就是字符串与数字相加,得到的结果是字符串,
    "9+"+1="9+1"
    "9+1"+3="9+13"②下边这句
    System.out.println ("式子:"+A+B+"+"+C+D+"="+R);
    "式子:"+A+B+"+"+C+D
    一开始就是字符串相加
    "式子:"+A="式子:0",
    "式子:0"+1="式子:01"
    以此类推
      

  4.   

    System.out.println (A+B+"+"+C+D+"="+R);
    A,B为int,做加法System.out.println ("式子:"+A+B+"+"+C+D+"="+R);
    "式子:"+A+B
    以字符串开头,A,B先转为字符串,再做连接操作
      

  5.   

    有很多方法,比如Integer.toString(A) + Integer.toString(B) + .....
    或者:"" + A + B + .....要保证A+B是做加法运算可以把他括起来... + (A+B) ...