审题不仔细的人,极容易自作聪明的在77777777范围内去计算奇数的个数。
忽略了数字8,9的缺失。
笨一点的方法是用8个for循环来拼数字,此种做法只需要顾忌最高位不为零的情况即可。
但本题的最佳思路如下:
1,组成的数字不一定非得是8位数,从一位到八位都可以。首先绕过惯性思维这个坑。
2,既然是奇数,那么末尾只能是1,3,5,7。所以个位数所有的可能情况是4。
3,最高位不能为0,所以最高位的选择只能是7。
4,其余位置的选择都可以有8种,这里假设位数为x,所有组合为y,得到如下关系:
x=1 y=4,
x=2, y=4*7,
x=3, y=4