//问题有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
//分析要组成三位数需要三个变量来控制 i—>个位 j—>十位 k—>百位 再用count基数
//每组成一个三位数count++ 再通过for循环来实现;
代码如下:
#includeint main() { //计算 int count = 0; for (int i = 1; i < 5; i++) { for (int j = 1; j < 5; j++) { for (int k = 1; k < 5; k++) if (i!=j&&i!=k&&j!=k) { printf("%d%d%dn", i, j, k); count++; } } } printf("%d", count); return 0; }
在执行此程序时,一共进行了4*4*4=64个循环,实际上其中有40个循环是没必要全部执行的,为了提高代码运行效率,可以使用continue语句优化
#includeint main() { int count=0; for (int i = 1; i < 5; i++) { for (int j = 1; j < 5; j++) { if (i == j) continue; for (int k = 1; k < 5; k++) { if (k == i || k == j) { continue; } else { printf("%d%d%dn", i, j, k); count++; } } } } printf("%d", count); return 0; }



