不重复的3位数
问题描述
0-9这10个数字可以组成多少不重复的3位数?
算法思路
- 使用a,b,c分别代表百位,十位,个位,然后依次进行迭代
- 注意"提前判断" 像
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);
}
}