题目:求0到7所组成奇数的个数
解题思路:从题目中可以看出这是一个数字排列组合问题,0到7总共是8个数,所以可以排到八位数。题目中所求的是奇数,我们都知道一个数的最后一位数是奇数的时候,不管前面有多少位数,这个数就一定是奇数。由于所求奇数总数较大,我们可以将其分成以下几个部分进行计算:
- 当只有一位数的时候所能组成的奇数个数为4,即1、3、5、7。
- 当只有两位数的时候所能组成的奇数个数为7 * 4 = 28。(0不能作为首位数字,所以只有7个数)
- 当只有三位数的时候所能组成的奇数个数为7 * 8 * 4 = 224。(0不能放在首位,但可以放在中间)
- 当只有四位数的时候所能组成的奇数个数为7 * 8 * 8 * 4 = 1792。
- 当只有五位数的时候所能组成的奇数个数为7 * 8 * 8 * 8 * 4 = 14336。
- 以此类推。。。。
- 当只有八位数的时候所能组成的奇数个数为7 * 8 * 8 * 8 * 8 * 8 * 8 * 4 = 7340032。
注:7是首位不能为0,4是保证最后一位数是奇数,也就是1、3、5、7。
代码如下:
package com.practice;