当前位置: 代码迷 >> Eclipse >> Java练习题解决思路
  详细解决方案

Java练习题解决思路

热度:19   发布时间:2016-04-23 13:27:45.0
Java练习题
三个数相加和等于20,输出所有的三个数(三个数为1-9,可以重复)!

------解决方案--------------------
Java code
import java.util.ArrayList;import java.util.List;public class Test6 {    /**     * @param args     */    public static void main(String[] args) {        int k = 0;        String str;        List list = new ArrayList();        for (int i = 1; i <= 9; i++) {            for (int j = 1; j <= 9; j++) {                k = 20 - i - j;                if (k >= 1 && k <= 9) {                    str = i + "-" + j + "-" + k;                    System.out.println(str);                    list.add(str);                }            }        }        System.out.println("去除掉重复的,即2-9-9  -- 9-9-2应该是相同的:");        int cnt = 0;        String str1 = "";        while (cnt < list.size()-1){            str = (String) list.get(cnt);            for (int i = list.size() -1 ; i > cnt; i--){                str1 = (String)list.get(i) ;                if (str1.indexOf(str.charAt(0)) >= 0                        && str1.indexOf(str.charAt(2)) >= 0                        && str1.indexOf(str.charAt(4)) >= 0) {                    list.remove(i);                }             }            cnt++ ;        }                for (int i = 0; i < list.size(); i++) {            System.out.println(list.get(i));        }    }}
------解决方案--------------------
Java code
package temp;import java.util.Arrays;import java.util.HashSet;import java.util.Iterator;public class Test2 {    public static void main(String[] args) {        HashSet<String> hs = new HashSet<String>();        int k = 0;        for (int i = 1; i <= 9; i++) {            for (int j = 1; j <= 9; j++) {                k = 20 - i - j;                if (k >= 1 && k <= 9) {                    int a[] = {i,j,k};                    Arrays.sort(a);                    StringBuilder sb = new StringBuilder();                    for(int n=0;n<a.length;n++) {                        sb.append(a[n]+" ");                    }                    hs.add(sb.toString());                }            }        }        Iterator<String> iterator = hs.iterator();        while(iterator.hasNext()){            String s = iterator.next();            System.out.println(s);        }    }}
  相关解决方案