题目:有1234 四个数,能组成多少个不同且无重复数字的三位数 ,并且是多少?
分析:首先题目要求的是组成三位数,所以我们可以先将所有的三位数拿出来,用for循环遍历所有三位数,即:
第一步
for (int i = 100; i <= 999; i++) {
{
其次,我们需要去判断所有的三位数都是由1、2、3、4组成,所以我们需要拿到这个三位数每位数上确切的数字是多少,在上面for循环内拿到即可,即:
第二步
int ge = i%10;
int shi = i/10%10;
int bai = i/100%100;
我们已经拿到了所有的三位数和他们个位、十位、百位上面的确切数组,接下来我们只要判断由1、2、3、4四位数构成的三位数即可,因为题目要求有多少个,所以可以设一个int sum = 0;来记录一共有多少个,符合条件的数就sum++;即:
第三步
if (ge <= 4 & shi <= 4 & bai <= 4 & ge >= 1 & shi >= 1 & bai >=1) {
if (ge != shi & ge != bai & shi != bai) {
System.out.println(i);
sum++;
}
}
此题解决完毕,最终结果为:
结果
public class Demo {
public static void main(String[] args) {
int sum = 0;
for (int i = 100; i <= 999; i++) {
int ge = i%10;
int shi = i/10%10;
int bai = i/100%100;
if (ge <= 4 & shi <= 4 & bai <= 4 & ge >= 1 & shi >= 1 & bai >=1) {
if (ge != shi & ge != bai & shi != bai) {
System.out.println(i);
sum++;
}
}
}
System.out.println("能组成" + sum + "个不同且无重读数字的三位数");
}
}
在控制台显示的结果为:
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个不同且无重读数字的三位数