前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字

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

作者头像
用户11328191
发布2024-10-23 14:31:25
650
发布2024-10-23 14:31:25
举报
文章被收录于专栏:li_wait

  分析:

        我们知道 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

代码实现:

代码语言:javascript
复制
#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,是怎么回事呢?

易错点

代码语言:javascript
复制
#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语句。


期待

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •   分析:
  • 易错点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档