完整代码: // 求0—7所能组成的奇数个数 //根据题意,应该是没有重复数字的,所以最大只能为八位数 //如果可以重复的话,那么位数就限制不了,然后奇数的个数就是无穷大了 #include <stdio.h> int main() { int count = 0; // 一位数 count = 4; // 1,3,5,7 个位必须保证为奇数 // 两位数 count += 6 * 4; // 排列问题,个位从4个奇数中选一个,十位不能为0,不能与个位相同,还有6种选择 // 三位数 count += 6 * 6 * 4; // 四位数 count += 6 * 6 * 5 * 4; // 五位数 count += 6 * 6 * 5 * 4 * 4; // 六位数 count += 6 * 6 * 5 * 4 * 3 * 4; // 七位数 count += 6 * 6 * 5 * 4 * 3 * 2 * 4; // 八位数 count += 6 * 6 * 5 * 4 * 3 * 2 * 1 * 4; printf("0-7所能组成的奇数个数:%d\n", count); return 0; } 运行截图: