package sum1920;
public class Sum1920 {
public static void main(String[] args) {
sum1920();
}
//从1到19共19个数,打印出利用这19个整数任意多个相加等于20所以可能性,每个数字在同一个算式中只出现一次.
public static void sum1920() {
//两数之和
for(int a=1;a<=18;a++) {
for(int b=a+1;b<=19;b++) {
if(a+b==20) {
System.out.println(a+"+"+b+"="+20);
}
}
}
//三数之和
for(int a=1;a<=17;a++) {
for(int b=a+1;b<=18;b++) {
for(int c=b+1;c<=19;c++) {
if(a+b+c==20) {
System.out.println(a+"+"+b+"+"+c+"="+20);
}
}
}
}
//四数之和
for(int a=1;a<=16;a++) {
for(int b=a+1;b<=17;b++) {
for(int c=b+1;c<=18;c++) {
for(int d=c+1;d<=19;d++) {
if(a+b+c+d==20) {
System.out.println(a+"+"+b+"+"+c+"+"+d+"="+20);
}
}
}
}
}
//五数之和
for(int a=1;a<=15;a++) {
for(int b=a+1;b<=16;b++) {
for(int c=b+1;c<=17;c++) {
for(int d=c+1;d<=18;d++) {
for(int e=d+1;e<=19;e++) {
if(a+b+c+d+e==20) {
System.out.println(a+"+"+b+"+"+c+"+"+d+"+"+e+"="+20);
}
}
}
}
}
}
}
}
结果
1+19=20
2+18=20
3+17=20
4+16=20
5+15=20
6+14=20
7+13=20
8+12=20
9+11=20
1+2+17=20
1+3+16=20
1+4+15=20
1+5+14=20
1+6+13=20
1+7+12=20
1+8+11=20
1+9+10=20
2+3+15=20
2+4+14=20
2+5+13=20
2+6+12=20
2+7+11=20
2+8+10=20
3+4+13=20
3+5+12=20
3+6+11=20
3+7+10=20
3+8+9=20
4+5+11=20
4+6+10=20
4+7+9=20
5+6+9=20
5+7+8=20
1+2+3+14=20
1+2+4+13=20
1+2+5+12=20
1+2+6+11=20
1+2+7+10=20
1+2+8+9=20
1+3+4+12=20
1+3+5+11=20
1+3+6+10=20
1+3+7+9=20
1+4+5+10=20
1+4+6+9=20
1+4+7+8=20
1+5+6+8=20
2+3+4+11=20
2+3+5+10=20
2+3+6+9=20
2+3+7+8=20
2+4+5+9=20
2+4+6+8=20
2+5+6+7=20
3+4+5+8=20
3+4+6+7=20
1+2+3+4+10=20
1+2+3+5+9=20
1+2+3+6+8=20
1+2+4+5+8=20
1+2+4+6+7=20
1+3+4+5+7=20
2+3+4+5+6=20