题目:统计由 0-7 这 8 个数字所能组成的奇数的个数。

程序分析:根据题目的要求,我们可以观察到以下规律:

  • 对于一个 n 位数,最后一位如果是奇数(1、3、5、7),那么这个数一定是奇数,无论前面的位数是什么。
  • 如果最后一位是偶数(0、2、4、6),那么这个数一定是偶数。

因此,我们只需要计算每个位数上的奇数个数,并进行累加即可。

实例

#include<stdio.h>

int main() {
    long sum = 4; // 初始值为 4,表示只有一位数字组成的奇数个数为 4 个
    long s = 4; // 每增加一位数,奇数个数乘以的倍数
    int j;

    for (j = 2; j <= 8; j++) {
        printf("%d 位数为奇数的个数:%ld\n", j-1, s);
        
        if (j <= 2)
            s *= 7;
        else
            s *= 8;
        
        sum += s;
    }

    printf("%d 位数为奇数的个数:%ld\n", j-1, s);
    printf("奇数的总个数为:%ld\n", sum);

    return 0;
}

以上程序运行输出结果为:

1 位数为奇数的个数:4
2 位数为奇数的个数:28
3 位数为奇数的个数:224
4 位数为奇数的个数:1792
5 位数为奇数的个数:14336
6 位数为奇数的个数:114688
7 位数为奇数的个数:917504
8 位数为奇数的个数:7340032
奇数的总个数为:8388608

通过此程序,我们可以统计由 0-7 组成的奇数的个数。每增加一位数,奇数个数乘以的倍数也相应增加。最终,我们得到了奇数的总个数为 8388608。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题