C语言:统计某个给定闭区间[L,R]内,数字X出现的次数。

题目描述:

例如:数字x为3;

给定范围为:[2,34];

数字3在3中出现一次,在13中出现一次,在23中出现一次,在30`31`32·34中各出现一次,在33中出现两次。

输出为:9;

输入格式:

数字L,R,X中间用一个空格隔开。

输入样例:

2 34 3

 

输出样例:

9

题目分析:

我们以x=13为例,求数字3出现的次数。

我们可以看到 x%10==3(即打印出了x的个位,此结果为我们想要,保存下来),接着我们要继续打印出x的十位...百位.......这时我们需要x=x/10。然后将这两个式子放入循环中,只要x 不等于0,就要继续循环。

代码如下:

#include <stdio.h>
#include <string.h>

int main()
{
    int L,R,X;
    scanf("%d %d %d",&L,&R,&X);  //输入要求输入的数字
    int i,j,k=0,y=0;             //定义K用来存储数字X出现的次数
    for(i=L;i<=R;i++)
    {
        y=i;
//这里需要用y来存储当前i的值,若直接将i放入while循环中,等到循环结束,i的值会发生改变。
        while(y!=0)
        {
            j=y%10;
               if(j==X)
                  k++;
            y=y/10;
        }
    }
    printf("%d",k);              //最后打印出k的值即可。
    return 0;
}

 

验证一下:

851388f09c204e0b82ca57c08c73e7bc.png

59f4fc91b7d14025b41898f4ce343c6c.png

 

 

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值