不重复的3位数

不重复的3位数

问题描述

0-9这10个数字可以组成多少不重复的3位数?

算法思路

  1. 使用a,b,c分别代表百位,十位,个位,然后依次进行迭代
  2. 注意"提前判断" 像 if a ==b: continue 在两个循环的时候就可以进行判断了

代码示例

Python

# a: 1-9
# b: 0-9
# c: 0-9

l = range(10)  # 产生一个用于遍历的列表
count = 0

for a in l[1:]:  # 这是使用列表切片
    for b in l:
        if a == b: continue
        for c in l:
            if c != a and c != b:  # 每个循环就可以过滤了,不要最后在一起过滤
                count += 1  # python没有就++, 就是 cnt+=1
                print(a, b, c)

print('count: %s' % (count))

Java


public class 不重复的3位数 {

    public static void main(String[] args) {
        // a: 1-9
        // b: 0-9
        // c: 0-9

        int count = 0;

        for (int a = 1; a < 10; a++) {
            for (int b = 0; b < 10; b++) {
                if (a == b)
                    continue;
                for (int c = 0; c < 10; c++) {
                    if (c != a && c != b){
                        count++;
                        System.out.printf("%d%d%d  \n", a, b, c);
                    }
                }
            }
        }
        System.out.printf("count: %d \n",count);

    }
}

猜你喜欢

转载自www.cnblogs.com/Rowry/p/11789892.html