你是真的“C”——2023年除夕夜 牛客网刷题经验分享~

简介: 2023年除夕夜牛客网C语言模块刷题经验分享~

追梦之旅,你我同行

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了==很多有趣的知识==, 现在迫不及待的想和大家分享一下!😘我仅已此文,给大家分享除夕夜的牛客网刷题分享~都是精华内容,可不要错过哟!!!😍😍😍

BC89 包含数字9的数 😊

**题目简述:
今年是2019年,KiKi想知道1~2019中有多少个包含数字9的数。包含数字的数是指有某一位是“9”的数,例如“2019”、“199”等。
输入描述:

输出描述:
一行,一个整数,表示1~2019中共有多少个数包含数字9。**

代码思路详解~

  • 首先利用for循环生成1~2019个数字;
  • 创建变量 m,代替i执行下面的步骤,这样就能够保留下i
  • 9可能出现再个位、十位,百位,千位上,这些都是要被统计的,这里利用取模运算。而当某一位没有9,就除10去掉这一位,进行下一位的比较,当m < 0时,while循环结束

题目源代码~: 😍

#include <stdio.h>
int main() 
{
    int count = 0;
    for (int i = 9; i <= 2019; i++)
    {
        int m = i;
        while(m>0)
        {
            if (m % 10 == 9)
            {
                count++;
                break;
            }
            else
            {
                m /= 10;
            }
        }
    }
    printf("%d",count);
    return 0;
}

BC90 小乐乐算多少人被请家长 😊

**题目简述:
描述
小乐乐的班主任想统计一下班级里一共有多少人需要被请家长,三个成绩(语文,数学,外语)平均分低于60的将被请家长,小乐乐想编程帮助班主任算一下有多少同学被叫家长。
输入描述:
共n+1行
第一行,输入一个数n,代表小乐乐的班级中有n个同学。
在接下来的n行中每行输入三个整数代表班级中一个同学的三科成绩(语文,数学,外语),用空格分隔。
输出描述:
一行,一个整数,代表班级中需要被请家长的人数。
示例1
输入:
3
80 100 90
40 70 65
20 84 93
输出:
1**

题目源代码~: 😍

#include<stdio.h>
int main()
{
    int n = 0;
    scanf("%d",&n);
    int count = 0;
    int ma = 0;
    int Ch = 0;
    int En = 0;
    while (scanf("%d %d %d", &Ch, &ma, &En) == 3)
    {
        int ave = (Ch + ma + En) / 3;
        if (ave < 60)
        {
            count++;
        }
    }
    printf("%d", count);
    return 0;
}

BC91 水仙花数 😊

**描述
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。
输入描述:
输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。
输出描述:
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开; 如果给定的范围内不存在水仙花数,则输出no; 每个测试实例的输出占一行。
示例1
输入:
100 120
300 380
输出:
no
370 371**

题目源代码~: 😍

#include <stdio.h> 
#include<math.h>
int main()
{
    int m = 0;
    int n = 0;
    
    while (scanf("%d %d", &m, &n) == 2)
    {
        int flag = 0;
        for (int i = m; i <= n; i++)
        {
            int sum = 0;//一定要将sum定义在里面,消除上一次sum记录的数值
            int a = i;//这里定义a是因为要确保不用动i,让a代替i做下面的步骤,再把符合条件的i输出来就行
            while (a > 9)//这里解决的是个位和十位的立方相加步骤
            {
                sum += pow(a % 10, 3);
                a /= 10;
            }
            sum += pow(a,3);//这里是加上百位上数字的立方
            if (sum == i)
            {
                printf("%d ", i);
                flag = 1;
            }
            
        }
        if (flag == 0)
            printf("no\n");
    }

    return 0;
}

BC92 变种水仙花 😊

描述

变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。

例如:

655 = 6 55 + 65 5

1461 = 1461 + 1461 + 146*1

求出 5位数中的所有 Lily Number。
输入描述:

输出描述:
一行,5位数中的所有 Lily Number,每两个数之间间隔一个空格。

画图分析~:

在这里插入图片描述

题目源代码~: 😍

#include <stdio.h>
int main() 
{
    int i = 0;
    int j = 0;
    for (i = 10000; i < 100000; i++)
    {
        int sum = 0;
        for(j = 10; j <100000; j*=10)
        {
            sum += (i % j)*(i / j);
        }
        if(sum == i)
        printf("%d ",i);
    } 
    return 0;
}

## BC93 公务员面试 😊
**描述
公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。
(注:本题有多组输入)
输入描述:
每一行,输入7个整数(0~100),代表7个成绩,用空格分隔。
输出描述:
每一行,输出去掉最高分和最低分的平均成绩,小数点后保留2位,每行输出后换行。
示例1
输入:
99 45 78 67 72 88 60
输出:
73.00**

题目源代码~: 😍

#include <stdio.h> 
int main()
{
    int arr[7] = { 0 };
    while (scanf("%d %d %d %d %d %d %d", arr, arr + 1, arr + 2, arr + 3,
           arr + 4, arr + 5, arr + 6) == 7)
    {
        int max = 0;//放在循环里面,每次循环都要将max初始化为0;
        int min = 100;//放在循环里面,每次循环都要将min初始化为0;
        int sum = 0;//放在循环里面,每次循环都要将sum初始化为0;
        for (int i = 0; i < 7; i++)
        {
            if (arr[i] > max)
            {
                max = arr[i];
            }
            if (arr[i] < min)
            {
                min = arr[i];
            }
            sum += arr[i];
        }
        double avg = (sum - min - max) / 5.0;
        printf("%.2f\n", avg);
    }
    return 0;
}

总结撒花💞

   ==本篇文章旨在分享今日刷题的经验。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘
相关文章
|
7月前
牛客网刷题总结4-22
牛客网刷题总结4-22
36 0
牛客网刷题-(3)
牛客网刷题-(3)
40 0
牛客网刷题-(2)
牛客网刷题-(2)
52 0
牛客网刷题-(11)
牛客网刷题-(11)
44 0
牛客网刷题-(6)
牛客网刷题-(6)
43 0
牛客网刷题-(10)
牛客网刷题-(10)
42 0
牛客网刷题-(9)
牛客网刷题-(9)
53 0
牛客网刷题-(4)
牛客网刷题-(4)
44 0
|
存储 索引
牛客网刷题笔记
牛客网刷题笔记
58 0
|
XML JSON JavaScript