数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字

简介: 数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字

 分析:

       我们知道 1-100的整数 i 中,9会出现在十位和个位上,数9出现的次数可以通过以下来实现:

  • 个位是9   // i % 10得到整数 i 个位上的数
  • 十位是9   // i / 10得到整数 i 除了个位数的数字

这也是做这道题之后,我们需要掌握的。思考, 1234想到得到4、12和123如何实现?(先自行思考一下)

1234 % 10    //得到4

1234 / 100      //得到12

1234 / 10   //得到123

代码实现:

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

从这里可以看出,99是算了两次的,所以数字9的出现次数是20 。那下例打印出19,是怎么回事呢?

易错点

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

       从运行结果看出,99少算了一次。对比前一个代码,发现差别仅有分支结构(if-if、if-else if)。

  • if-if条件只要满足就会都会执行if语句;
  • if-else只会执行一个语句,要么是if语句,要么是else语句 。

而这里99首先满足  i % 10 == 9  的判断条件,所以执行完相应语句后,就到for循环的调整语句(i++),没有进入else语句。


期待


目录
相关文章
|
1月前
|
算法 前端开发
619. 只出现一次的最大数字
619. 只出现一次的最大数字
30 0
|
1月前
|
C++
写一个函数,输入一个四位数字,要求输出这四位数字字符,但是每两个数字间空一个字符,如输入1990,输出1 9 9 0
这是一个C++代码段,用于打印整数的逆序。程序从用户输入接收一个整数,然后通过递归方法将其逆序输出。示例结果展示了一张图片,但因摘要限制无法显示。代码功能是将数字如12345逆序输出为54321。
20 0
|
1月前
|
C++
写一个函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空一个空格。如输入1990,输出1 9 9 0
这是一个C++代码片段,实现了一个函数`Print`,用于倒序打印整数。代码在`main`函数中读取用户输入的整数`n`,然后调用`Print`函数输出。示例运行结果显示了一张图片,显示了代码执行后的输出,但具体内容未提供。
23 0
|
1月前
|
存储 算法 C++
c++数字
c++数字
19 1
|
1月前
28.求任意一个整数的十位上的数字
28.求任意一个整数的十位上的数字
60 3
|
1月前
25.输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值
25.输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值
27 0
|
1月前
|
存储 C++ 容器
Acwing.75 和为S的两个数字
Acwing.75 和为S的两个数字
|
1月前
|
C++
『C/C++』Eg2:简单输出整数
『C/C++』Eg2:简单输出整数
|
10月前
wustojc2001输出四位整数的各位数字
wustojc2001输出四位整数的各位数字
56 0