43 求0—7所能组成的奇数个数
题目:求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 }
十年磨一剑,一剑破万法