题目:
- 求0—7所能组成的奇数个数
已知:
* 组成1位数是4个。
* 组成2位数是7*4个。
* 组成3位数是7*8*4个。
思路分析:
- 这个问题其实是一个排列组合的问题,设这个数为sun=a1a2a3a4a5a6a7a8,a1-a8表示这个数的某位的数值,
- 当一个数的最后一位为奇数时,那么这个数一定为奇数,不管前面几位是什么数字。如果最后一位数为偶数, 则这个数一定为偶数。
- a1-a8可以取0-7这个八个数字,首位数字不为0。 从该数为一位数到该数为8位数开始统计奇数的个数:
- 1.当只有一位数时也就是该数的最后一位,奇数个数为4
- 2.当该数为两位数时,奇数个数为4*7=28
- 3.当该数为三位数时,奇数个数为:4*8*7=224
1 public class _043CountOddNumber {
2
3 public static void main(String[] args) {
4 countOddNumber();
5 }
6
7 private static void countOddNumber() {
8 int sum = 0;
9 int odd = 0;
10 int j;
11
12 for (j = 1; j < 9; j++) {
13 if (j == 1) {
14 odd = 4;
15 } else if (j == 2) {
16 odd *= 7;
17 } else {
18 odd *= 8;
19 }
20 System.out.println("组成" + j + "位数的奇数有:" + odd + "个");
21 sum += odd;
22 }
23 System.out.println("总计为" + sum + "个");
24
25 }
26
27 }