xiaosi4081 发表于 2020-7-24 15:31:24

C语言小练习-第6期【答题领鱼币】

本帖最后由 xiaosi4081 于 2020-7-28 17:08 编辑

致歉:
由于最近沉迷于学习.....,所以忘记更新了,今天,我们就接着来答题领鱼币吧
请统计某个给定范围的所有整数中,数字2出现的次数。
比如在给定范围,数字2在数2中出现了1次,在数12中出现了1次,在数20中出现了1次,在数21中出现了1次,在数22中出现了2次,所以数字2在该范围内一共出现了6次。


输入格式:
        输入共一行,为两个正整数L和R,之间用一个空格隔开。
输出格式:
        输出共1行,表示数字2出现的次数。


样例 1 :
输入:
3 22
输出:
5

样例 2 :
输入:
2 100
输出:
20


答案:(28号公布)

**** Hidden Message *****

SHRS23 发表于 2020-7-24 15:31:25

本帖最后由 SHRS23 于 2020-7-24 16:26 编辑

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int l, r;
    int i, j;
    int n = 0;
    scanf("%d%d", &l, &r);

    for(i = l; i <= r; i++)
    {
      j = i;

      while(j > 0)
      {
            if(j % 10 == 2)
            {
                n++;
            }
            j /= 10;
      }
    }

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

xiaosi4081 发表于 2020-7-24 17:26:07

没人吗?

风过无痕1989 发表于 2020-7-24 18:33:04

我来学习学习

浊水_清山 发表于 2020-7-25 09:45:34

def count_2(L,R):
        count=0
        l=int(L)
        r=int(R)
        for x in range(l,r+1):
                while x:
                        if x%10==2:
                                count+=1
                        x=x//10
        return count

L,R=input("输入:\n").split()
print("输出:",count_2(L,R),sep='\n')
萌新操作,不足之处麻烦大佬指正{:10_266:}

dengyk 发表于 2020-7-25 11:45:13

#include <stdio.h>

int fin_num2(int num1, int num2)
{
        int count = 0;
        for (int i = num1; i <= num2; i++)
        {
                if (i < 20)
                {
                        if ((i % 10 == 2))
                                count++;
                }
                else if (i < 30)
                {
                        if (i == 22)
                                count += 2;
                        else
                                count++;
                }
                else if (i % 10 == 2)
                        count++;
        }
        return count;
}

int main(void)
{
        printf("输入:\n");

        int num1, num2;
        scanf("%d %d", &num1, &num2);
        printf("%d\n", fin_num2(num1, num2));

        return 0;
}

guard99 发表于 2020-7-25 13:45:57

#include <stdio.h>

void main()
{
        int a,b;
        int i,sum=0,temp,t;
        printf("输入:\n");
        scanf("%d%d",&a,&b);
        for(i=a;i<=b;i++)
        {
                temp=i;
                while(temp)
                {
                        t=temp%10;
                        temp/=10;
                        if(t==2)
                        {
                                sum++;
                        }
                }
        }
        printf("输出:\n%d",sum);
}

qcyQCY 发表于 2020-7-25 15:19:39

#include <stdio.h>

int main()
{
      int a,b;
      int i,sum=0,temp,t;
      printf("输入:\n");
      scanf("%d,%d",&a,&b);
      for(i=a;i<=b;i++)
      {
                temp=i;
                while(temp)
                {
                        t=temp%10;
                        temp/=10;
                        if(t==2)
                        {
                              sum++;
                        }
                }
      }
      printf("输出:\n%d",sum);
}

qcyQCY 发表于 2020-7-25 15:20:30

guard99 发表于 2020-7-25 13:45
#include

void main()


要有个逗号1

风过无痕1989 发表于 2020-7-25 16:34:33

#include<stdio.h>
int main()
{
    int L,R,i,n = 0;
        scanf("%d %d",&L,&R);
    if(L < 1000 && L % 100 == 2)                  // 最小数的百位若为2,n加1
        {
      n++;
        }
          else
          {
                if(L < 100 && L % 10 == 2)                // 最小数的十位若为2,n加1
                {         
                        n++;
                }
          else
                {
                   if(L == 2)                            // 最小数的个位若为2,n加1
                   {
                        n++;
                   }
                }
          }
        for(i = L;i <= R;i++)
        {
          if(i % 2 == 0 && i % 4 != 0 && i % 8 != 0 && i % 10 != 0)
                  n++;                  
        }
        printf("%d\n",n);
}

*********************************************
2 22
6
Press any key to continue . . .

*********************************************

*********************************************
2 100
21
Press any key to continue . . .

*********************************************

*********************************************
18 998
197
Press any key to continue . . .

*********************************************

xiaosi4081 发表于 2020-7-25 19:55:07

浊水_清山 发表于 2020-7-25 09:45
def count_2(L,R):
        count=0
        l=int(L)


这里是c++专区OK?{:10_245:}
不是python专区{:10_245:}

浊水_清山 发表于 2020-7-25 21:21:26

xiaosi4081 发表于 2020-7-25 19:55
这里是c++专区OK?
不是python专区

{:10_285:}{:10_266:}眼里只有鱼币,打扰了

Hant 发表于 2020-7-25 21:34:21

66

骷髅王万恶不赦 发表于 2020-7-25 22:36:22

你好,要怎么回答呀,我今天刚通过的邮箱验证

永恒的蓝色梦想 发表于 2020-7-25 23:26:36

#include<stdio.h>



int main() {
    unsigned long long L, R, temp, result = 0;


    for (scanf("%llu%llu", &L, &R); L <= R; ++L) {
      for (temp = L; temp; temp /= 10) {
            result += temp % 10 == 2;
      }
    }


    printf("%llu", result);
    return 0;
}

泛浮 发表于 2020-7-26 01:15:51

本帖最后由 泛浮 于 2020-7-26 13:28 编辑

#include<stdio.h>
#include<stdlib.h>
int main()
{
        int i,j,k;
        int x= 0;
        int count=0;
        int flag;

        printf("请输入开始整数:");
        scanf("%d",&i);

        printf("请输入结束整数:");
        scanf("%d",&j);

        printf("请输入判断整数:");
        scanf("%d",&k);
        j=j+1;

        for(i;i<j;i++)
{
    flag = i;
                while(i)
        {
                x=i%10;
                if(k == x)
                {
                        count++;

                }
                i=i/10;

        }
    i = flag;
}
        printf("%d",count);
        return;
}
       

      
       
   

   

泛浮 发表于 2020-7-26 02:20:10

本帖最后由 泛浮 于 2020-7-26 13:29 编辑

泛浮 发表于 2020-7-26 01:15
#include
#include
int main()


j = j+1哪里之前直接放进循环造成了一个浮动数,困了我5分钟。。。。

Ray-先生 发表于 2020-7-26 09:22:32

l, f = list(map(int, input().split()))
s = 0
for i in range(l, f+1):
    if "2"in str(i):
      s+=1
print(s)

何止喜欢 发表于 2020-7-26 16:32:19

#include<iostream >
using namespace std;

int main()
{
        int m, n;
        int count = 0;
        cin >> m >> n;
        for ( m; m <= n; m++)
        {
                int u = m;
                while (u)
                {
                        if (u % 10 == 2)
                        {
                                count++;
                        }
                        u = u / 10;
                } ;
        }
        cout << count;
}

不会编程小垃圾 发表于 2020-7-26 18:49:13

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int l, r;
    int i, j;
    int n = 0;
    scanf("%d%d", &l, &r);

    for(i = l; i <= r; i++)
    {
      j = i;

      while(j > 0)
      {
            if(j % 10 == 2)
            {
                n++;
            }
            j /= 10;
      }
    }

    printf("%d\n", n);
    return 0;
}
页: [1] 2
查看完整版本: C语言小练习-第6期【答题领鱼币】