0基础学编程之输出1到 100 的所有整数中出现多少次数字9

#include<stdio.h>
int main()
{
    int i, j=0;
for (i=1; i<=100; i++)
{
if(i%10 == 9) //个位是9
j++;
if(i/10 == 9)   //十位是9
j++;
}
printf("%d\n", j);
return 0;

}

运行结果


### 统计指定范围内每个数字0-9)出现次数的实现方法 以下是基于 Java 的解决方案,通过循环遍历 `[1, n]` 范围内的所有整数,并统计其中每一位数字 `0-9` 出现的频率。 #### 实现思路 为了高效地处理这个问题,可以通过以下方式实现: 1. 遍历从 `1` 到 `n` 的每一个整数。 2. 将当前整数转换为字符串形式以便逐位提取每位上的数字。 3. 使用一个长度为 10 的数组记录每种数字的出现次数。 4. 输出最终的结果。 下面是完整的代码示例: ```java public class DigitFrequencyCounter { public static void main(String[] args) { int n = 100; // 可以修改此值来设置范围上限 // 初始化一个大小为10的数组,用来存储09每个数字的出现次数 int[] frequency = new int[10]; for (int i = 1; i <= n; i++) { // 遍历从1到n的所有整数 String numberStr = Integer.toString(i); // 将整数转为字符串 for (char c : numberStr.toCharArray()) { // 对于该整数中的每一位字符 if (Character.isDigit(c)) { // 确保是数字字符 int digit = Character.getNumericValue(c); frequency[digit]++; } } } // 打印结果 System.out.println("在1到" + n + "之间,各数字(0-9)出现的次数如下:"); for (int i = 0; i < frequency.length; i++) { System.out.println("数字 " + i + ": " + frequency[i] + " 次"); } } } ``` #### 关键点解析 上述代码实现了对给定区间 `[1, n]` 中所有整数中各个数字 `0-9` 出现频次的计算。具体说明如下: - 数组 `frequency` 是核心数据结构,其索引代表对应的数字,而值则表示该数字在整个区间的总出现次数[^5]。 - 整数被转化为字符串后逐一分析每一位上的数字,这样可以方便地访问任意位置上的数字[^4]。 - 时间复杂度主要由两部分组成:外层循环负责迭代整个区间 `(O(n))`;内层循环取决于数字的最大位数 `(log₁₀(n))`。因此整体时间复杂度约为 O(n log n)[^1]。 #### 测试与验证 运行以上程序并设定不同的 `n` 值可观察不同情况下的统计数据。例如当 `n=100` 时,输出应类似于下面的内容: ``` 在1100之间,各数字(0-9)出现的次数如下: 数字 0: 12 次 数字 1: 21 次 ... 数字 9: 20 次 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值