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

阿旭_
TA貢獻(xiàn)217條經(jīng)驗 獲得超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、遍歷所有可能性,利用進(jìn)制窮舉法,算上重復(fù)的有4的3次冪個?*/ aa:?for?(int?i?=?0;?i?<?Math.pow(4,?3);?i++)?{// /*?2、將遍歷的每一個十進(jìn)制值,轉(zhuǎn)換成相應(yīng)的3位4進(jìn)制數(shù)?*/ String?str?=?"00"?+?Integer.toString(i,?4);//?去掉重復(fù)的 str?=?str.substring(str.length()?-?3); /*?3、利用Set集合內(nèi)部去重,若發(fā)現(xiàn)已添加過則去掉,這個數(shù),重新回到下一個i分析?*/ Set<String>?mSet?=?new?HashSet<String>(); for?(int?j?=?0;?j?<?str.length();?j++)?{ if?(!mSet.add(str.charAt(j)?+?""))?{ continue?aa;//?已存在,遍歷下一個數(shù)字 } } /*?4、?打印這個可能性?*/ for?(int?j?=?0;?j?<?str.length();?j++)?{ System.out.print((char)?(str.charAt(j)?+?1)?+?(j?==?str.length()?-?1???"\n"?:?"?")); } } } }
添加回答
舉報
0/150
提交
取消