題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。
1 回答
已采納

阿旭_
TA貢獻217條經驗 獲得超353個贊
import?java.util.ArrayList; import?java.util.HashSet; import?java.util.List; import?java.util.Set; public?class?Test33?{ public?static?void?main(String[]?args)?{ /*?1、遍歷所有可能性,利用進制窮舉法,算上重復的有4的3次冪個?*/ aa:?for?(int?i?=?0;?i?<?Math.pow(4,?3);?i++)?{// /*?2、將遍歷的每一個十進制值,轉換成相應的3位4進制數?*/ String?str?=?"00"?+?Integer.toString(i,?4);//?去掉重復的 str?=?str.substring(str.length()?-?3); /*?3、利用Set集合內部去重,若發現已添加過則去掉,這個數,重新回到下一個i分析?*/ Set<String>?mSet?=?new?HashSet<String>(); for?(int?j?=?0;?j?<?str.length();?j++)?{ if?(!mSet.add(str.charAt(j)?+?""))?{ continue?aa;//?已存在,遍歷下一個數字 } } /*?4、?打印這個可能性?*/ for?(int?j?=?0;?j?<?str.length();?j++)?{ System.out.print((char)?(str.charAt(j)?+?1)?+?(j?==?str.length()?-?1???"\n"?:?"?")); } } } }
添加回答
舉報
0/150
提交
取消