首页 > 试题广场 >

数字统计

[编程题]数字统计
  • 热度指数:9428 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解

请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。

比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。


输入描述:
输入共1行,为两个正整数L和R,之间用一个空格隔开。


输出描述:
输出共1行,表示数字2出现的次数。
示例1

输入

2 22

输出

6
示例2

输入

2 100

输出

20

备注:
1≤L≤R≤10000。
#include <stdio.h>
int count2(int l, int r) {
    int i = 0, j = 0, cnt = 0;
    for (i = l; i <= r; i++) {
        j = i;
        while (j) {
            if (j % 10 == 2) {
                cnt++;
            }
            j /= 10;
        }
    }
    return cnt;
}

int main() {
    int l = 0, r = 0;
    scanf("%d %d", &l, &r);
    printf("%d\n", count2(l, r));
    return 0;
}
发表于 2025-01-16 17:16:57 回复(0)
#include<stdio.h>

int Count(int a, int b)
{
   int i = 0;
   int sum = 0;
   for(i=a;i<=b;i++)
   {
      int z = i;
      int g = 0;
      while(z)
      {
         g = z %10;
        
         if(g==2)
         {
            sum++;
         }
         z = z /10;
      }
   }
   return sum;

}
int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d",&a,&b);
    int ret= Count(a,b);
    printf("%d",ret);
    return 0;
}

发表于 2024-12-24 11:10:47 回复(0)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    int a, b, can = 0, n = 0, ci = 0;
    scanf("%d %d", &a, &b);

    //将检查循环重复在指定范围内次
    for (int x = a; x <=b; x++) {
        n = x;

        //检查每个数位是否等于2 是则次数变量加一  当数为零则跳出循环
        for (int y = 0; y < 10; y++) {
            if (n == 0) {
                break;
            }
            can = n % 10;
            if (can == 2) {
                ci++;
            }
            n /= 10;
        }

    }
    
    printf("%d", ci);
    return 0;
}

发表于 2024-10-28 21:19:56 回复(0)
#include <stdio.h>

int count_num(int a, int b){
    int count = 0;
    int tmp;
    for (int i = a; i <= b; i++) {
        tmp = i; //防止i变化,用临时变量进行后续操作
        while (tmp > 0){
            if (tmp == 2){
                count++;
                break;
            }
            if (tmp != 2){
                if (tmp % 10 == 2){
                    count++;
                    tmp = tmp / 10;
                }
                else{
                    tmp = tmp / 10;
                }
            }
        }
    }
    return count;
}

int main() {
    int a, b;
    scanf("%d %d",&a,&b);
    int ret = count_num(a,b);
    printf("%d",ret);
    return 0;
}
//
// Created by Wilbur Lee on 11/7/2024.
//

发表于 2024-07-11 19:12:18 回复(0)
#include <stdio.h>

//函数名的意思是2出现的次数
int Number2OfOccurrences(int L, int R)
{
    int count = 0;  //记录二出现的次数
    for(int i = L; i <=R; i++)
    {
        int tmp = i;
        while (tmp) 
        {
            //判断余数为2,计数加一
            if(tmp % 10 == 2)
                count++;
            
            tmp /= 10;
        }
    }

    return count;
}

int main() {
    int L, R;
    scanf("%d %d", &L, &R);

    int sum = Number2OfOccurrences(L, R);
    printf("%d", sum);
}

发表于 2024-06-23 19:14:20 回复(0)
#include <stdio.h>

int FindTwo(int x)
{
    int ret = 0;

    while(x > 0)
    {
        if(x % 10 == 2)
        {
            ret++;
        }
        x /= 10;
    }
    return ret;
}

int main() 
{
    int a = 0;
    int b = 0;
    int i = 0; 
    int count = 0;

    scanf("%d%d", &a, &b);

    for(i = a; i <= b; i++)
    {
        count += FindTwo(i);
    }

    printf("%d\n", count);
    
    return 0;
}

发表于 2024-03-28 19:22:38 回复(0)
#include <stdio.h>

int F(int i) {
    long sum = 0;
    while (i) {
        if(i % 10 == 2){
            sum++;
        }
        i /= 10;
    }
    return sum;
}

int main() {
    int L, R;
    scanf("%d %d", &L, &R);
    int sum=0;
    for(int i=L; i<=R; i++){
        sum += F(i);
    }
    printf("%d", sum);
    return 0;
}


编辑于 2024-02-21 21:05:01 回复(0)
#include <stdio.h>

int main() {
    int L, R, count = 0;
    scanf("%d %d", &L, &R);
    for (int i = L; i <= R; i++) {
        int temp = i;
        while (temp) {
            if (temp % 10 == 2) {
                count++;
            }
            temp /= 10;
        }
    }
    printf("%d", count);
    return 0;
}

编辑于 2024-02-09 21:30:31 回复(0)
#include <stdio.h>
int count(int l,int r)
{
    int i,sum = 0;
    for(i=l;i<=r;i++)
    {
        int k = i;
        while(k)
        {
            int t = k%10;
            k /= 10;
            if(t==2)
            {
                sum++;
            }
        }
    }
    return sum;
}
int main()
{
    int l,r;
    scanf("%d %d",&l,&r);
    int ret = count(l,r);
    printf("%d",ret);
    return 0;
}

发表于 2023-11-17 10:26:15 回复(0)
#include <stdio.h>
int main() {
   int a,b;
   int i = 0;
   int count = 0;
   int sum = 0;
   while(scanf("%d %d",&a,&b) != EOF)
   {
    for(i = a;i<=b;i++)
    {
        int num = i;
        while(num)
        {
            int a = num%10;
            num = num/10;
            if(a == 2)
            {
                count++;
            }
        }
    }
    printf("%d",count);
   }
    return 0;
}
发表于 2023-06-05 14:26:26 回复(0)
#include <stdio.h>
int checkTwo(int l, int r) {
    int tmp = 0, cnt = 0;
    for (int i = l; i <= r; i++) {
        tmp = i;
        while (tmp) {
            // Check LSB(Least Significant Bit)
            if (tmp % 10 == 2) {
                cnt++;
            }
            // Check the next digit of tmp
            tmp /= 10;
        }
    }
    return cnt;
}

int main() {
    int l, r;
    while (scanf("%d %d", &l, &r) != EOF) {
        printf("%d\n", checkTwo(l, r));
    }
    return 0;
}
发表于 2023-03-01 20:12:03 回复(0)
#include<stdio.h>
int Find_2(int num) {
    int count = 0;
    while (num) {
        if (2 == num % 10)
            count++;
        num /= 10;
    }
    return count;
}
int main() {
    int L, R, ret = 0;
    scanf("%d %d", &L, &R);
    for (int i = L; i <= R; i++)
        ret += Find_2(i);
    printf("%d\n", ret);
    return 0;
}

发表于 2022-08-11 09:54:44 回复(0)
#include <stdio.h>
int cxcs2(int n)
{
    int s = 0;
    while(n > 0)
    {
        if(n%10 == 2)
            s++;
        n /= 10;
    }
    return s;
}

int main()
{
    int a, b, s = 0;
    scanf("%d %d", &a, &b);
    for(int i = a; i <= b; i++)
        s = s+cxcs2(i);
    printf("%d", s);
    return 0;
}

发表于 2022-07-02 10:59:32 回复(0)
#include<stdio.h>
int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    int i, count = 0;
    for (i = n; i <=m; i++) {
        int ret = i;
        while(ret) {
            if (ret % 10 == 2)
                count++;
            ret /= 10;
        }
    }
    printf("%d\n", count);
}

发表于 2022-06-25 15:25:07 回复(0)
#include <stdio.h>
int judge(int num){
    int flag = 0;
    while(num){
        int res = num % 10;
        if(res == 2)
            flag ++;
        num /= 10;
    }
    return flag;
}

int main(){
    int l, r, count = 0;
    scanf("%d %d", &l, &r);
    for(int i = l; i <= r; i++)
        count += judge(i);
    printf("%d", count);
    return 0;
}

发表于 2022-06-15 19:09:54 回复(0)
#include<stdio.h>

int find(int x,int y)
{
    int count=0;
    for(int i=x;i<=y;i++)
    {
        int j=i;
        while(j>0)
        {
            if(j%10==2)
            {
                count++;
            }
            j/=10;
        }
    }
    return count;
}

int main()
{
    int a,b=0;
    scanf("%d %d",&a,&b);
    printf("%d",find(a,b));
    return 0;
}
发表于 2022-04-19 14:39:58 回复(0)
发表于 2022-03-26 13:41:38 回复(0)
#include<stdio.h>
int main()
{
    long long l,r;
    scanf("%lld %lld",&l,&r);
    int count=0;
    for(long long i=l;i<=r;i++)
    {
        long long n=i;
        while(n)
        {
            if(n%10==2)
            count++;
            n/=10;
        }
    }
    printf("%d\n",count);
    return 0;
}

发表于 2022-03-12 17:37:11 回复(0)
#include<stdio.h>
int main(void)
{
    int l, r, i, temp, sum = 0;
    scanf("%d %d", &l, &r);
    for (i = l; i <= r; i++) {
        temp = i;
         do{
             if (temp % 10 == 2) { sum++; }
            temp /= 10;
         } while (temp != 0);

    }
    printf("%d", sum);
}
发表于 2022-03-10 15:55:35 回复(0)
#include<stdio.h>
int sum(int num,int a)
{
    int n=0;
    for( n=0;num>0;num/=10)
    {
        if(num<10)
        {
            if(num==a)
                n++;
        }
        else
        {
            if(num%10==a)
                n++;
        }
    }
    return n;
}
int main()
{
    int left,right,n=0;
    scanf("%d %d",&left,&right);
    for(int i=left;i<right+1;i++)
       n+=sum(i,2);
    printf("%d\n",n);
    return 0;
}



//基本跟前面几道题都是通用的,小改即可

发表于 2022-03-10 15:45:00 回复(0)

问题信息

难度:
20条回答 4376浏览

热门推荐

通过挑战的用户

查看代码
数字统计