这篇文章讲述的是算法趣味整数部分的不重复的3位数问题的java实现,参考的书籍为清华大学出版社出版,贾蓓等编著的《c语言趣味编程1000例》,如有错误或者不当之处,还望各位大神批评指正。
问题描述
用1,2,3,4,共4个数字能组成多少个互不相同且无重复数字的三位数?都是多少?
算法分析
穷举法,使用3层循环来确定百、十、个为数,再判断每一位是否相等,不相等则输出
代码实现
package funnyInteger;
/**
* @author 叶清逸
* @date 2018年7月14日下午9:33:49
* @version 1.0
* @project funnyInteger
*/
public class Q10_NoRepetitionNumber {
/**
* 问题描述:用1,2,3,4,共4个数字能组成多少个互不相同且无重复数字的三位数?都是多少?
*
* 算法分析:穷举法,使用3层循环来确定百、十、个为数,再判断每一位是否相等,不相等则
* 输出
*/
public static void main(String[] args) {
/*使用num来统计结果个数*/
int num = 0 ;
/*使用三层循环遍历百位、十位、个位*/
for(int hundred=1 ; hundred<=4 ; hundred++)
for(int ten=1 ; ten<=4 ; ten++)
for(int one=1 ; one<=4 ; one++){
if(hundred!=ten && hundred!=one && ten!=one){
num++ ;
System.out.print(hundred+""+ten+""+one+" ");
if(num%8 == 0)
System.out.println();
}
}
System.out.println("共"+num+"个");
}
}
样例输出
123 124 132 134 142 143 213 214
231 234 241 243 312 314 321 324
341 342 412 413 421 423 431 432
共24个