1-19的整数和为20如:
1+19=20
1+2+17=20
1+2+3+14=20
1+2+3+4+10=20
2+18=20
2+3+15=20
2+3+4+11=20
2+3+4+5+6=20
3+17=20
3+4+13=20
3+4+5+8=30
4+16=20
4+5+11=20
5+15=20
5+6+9=20
6+14=20
[color=red][b]注:每个加数不能重复比如(4+5+5+6=20 5和5重复不可以。1+19和19+1也不可以2+18和18+2等等)[/b][/color]
[code="java"]
public class Test {
public static void main(String[] args) {
int value=1; //初始值(1-19)
boolean flag=true ; //标识位
while(true){
int count=0; //自增变量
int sum=value; //保存累加结果的变量
String tempstr=String.valueOf(value); //以字符串的形式保存累加信息
while(flag){
if(count>0){
sum+=value+count;
tempstr+=" + "+(value+count);
}else {
sum+=count;
tempstr=String.valueOf(value);
}
if(value+count>= (20-sum)){
System.out.println("********************************");
break;
}
System.out.println(tempstr+" + "+(20-sum)+" = 20");
count++;
}
if(value==19)break; //value取值为19时,跳出循环
value++;
}
}
}
[/code]
你要干嘛啊?求什么啊?说明白啊
怎么也是这个问题?楼上的,楼主的意思应该是你要把所有的那个等式打印出来,即使不打印也应该是算法上的限制,我在想了,还没找到。。。 :o
1 + 19 = 20
1 + 2 + 17 = 20
1 + 2 + 3 + 14 = 20
1 + 2 + 3 + 4 + 10 = 20
2 + 18 = 20
2 + 3 + 15 = 20
2 + 3 + 4 + 11 = 20
2 + 3 + 4 + 5 + 6 = 20
3 + 17 = 20
3 + 4 + 13 = 20
3 + 4 + 5 + 8 = 20
4 + 16 = 20
4 + 5 + 11 = 20
5 + 15 = 20
5 + 6 + 9 = 20
6 + 14 = 20
7 + 13 = 20
8 + 12 = 20
9 + 11 = 20
不知是不是楼主要的内容呢?
哈哈,我想了最垃圾的写法
[code="java"]
public class Test1 {
public static void printFormula(int[] value){
for(int i=1;i<value.length;i++)
{
String valueStr = "公式"+ value[i] +":" + value[i] + "";
int tempS = 0;
StringBuffer temp=new StringBuffer();
for(int s=i+1;s<value.length;s++)
{
tempS += value[s];
temp.append("+").append(value[s]);
if(value[i]+value[s]==20){
System.out.println(valueStr +"+"+value[s]);
}
for(int j=s+1;j<value.length;j++)
{
if(value[i]+tempS+value[j]==20){
System.out.println(valueStr +temp+"+"+value[j]);
}
}
}
}
}
public static void main (String rags[]){
int value[]= new int[19];
for(int i=0;i<value.length;i++){
value[i]=1+i;
}
Test1.printFormula(value);
}
}
[/code]
数组生成错了!!
[code="java"]public static void main (String rags[]){
int value[]= new int[20];
for(int i=0;i<value.length;i++){
value[i]=i;
}
Test1.printFormula(value);
}[/code]