// 求满足等式 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的前面加入和删去字符串会对输出的结果有这么大的影响.恳请高手为小菜我详细解答一下,分不多,望见谅.
我有一段代码如下:
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的前面加入和删去字符串会对输出的结果有这么大的影响.恳请高手为小菜我详细解答一下,分不多,望见谅.
如果一开始A+B两个都是数字,做加法运算!
这个式子先把A和B相加,结果为整型,再把这个整型与“+”相加才变为字符串。
System.out.println ("式子:"+A+B+"+"+C+D+"="+R);
一开始就是字符串相加。
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"
以此类推
A,B为int,做加法System.out.println ("式子:"+A+B+"+"+C+D+"="+R);
"式子:"+A+B
以字符串开头,A,B先转为字符串,再做连接操作
或者:"" + A + B + .....要保证A+B是做加法运算可以把他括起来... + (A+B) ...