2023年大年初一 —— 牛客网刷题经验分享~

简介: 2023年大年初一,牛客网C语言刷题经验详细总结~

@TOC

大年初一 —— 牛客网刷题经验分享~😎)

追梦之旅,你我同行

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

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

前言🙌

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

BC94 反向输出一个四位数 😊

描述

将一个四位数,反向输出。

输入描述:
一行,输入一个整数n(1000 <= n <= 9999)。
输出描述:
针对每组输入,反向输出对应四位数。
示例1
输入:

1234

输出:

4321

解题代码: 😍

//递归写法
#include<stdio.h>
void Inversion_printf(int n)
{
    if (n > 9)
    {
        printf("%d", n % 10);
        Inversion_printf(n / 10);
    }
    else
    {
        printf("%d", n);
    }
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    Inversion_printf(n);
    return 0;
}

//非递归写法
#include<stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    while (n)
    {
        printf("%d", n % 10);
        n /= 10;
    }
    return 0;
}

BC95 小乐乐与进制转换 😊

描述

小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。
输入描述:

输入一个正整数n (1 ≤ n ≤ 109)
输出描述:
输出一行,为正整数n表示为六进制的结果
示例1
输入:

6

输出:

10

示例2
输入:

120

输出:

320

非递归方法实现思路分析:😍

  • 非递归方法,可以巧妙借助一个数组来存储来记录6进制数的每一位数,然后逆序输出。
  • 要熟练掌握和运用取模运算的技巧。
  • 还是要类比其他我们熟悉的进制间的转换,然后推导出6进制的转换规律。

递归方法画图分析~: 😍
在这里插入图片描述
解题代码: 😍

//递归方法:
#include<stdio.h>
void print(int n)
{
    if (n > 5)
        print(n / 6);
    printf("%d", n % 6);
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    print(n);
    return 0;
}
非递归方法:
#include <stdio.h>
int main()
{
    int n;
    int a[10] = {0};
    scanf("%d",&n);
    int i = 0;
    while(n != 0){
        a[i] = n % 6;
        n /= 6;
        i++;
    }
    for(int j = i - 1 ; j >= 0; j--){
        printf("%d",a[j]);
    }
}

BC96 [NOIP2015]金币😊

描述
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。
请计算在前K天里,骑士一共获得了多少金币。
输入描述:
输入只有1行,包含一个正整数K,表示发放金币的天数。
输出描述:
输出只有1行,包含一个正整数,即骑士收到的金币数。
示例1
输入:

6

输出:

14

说明:

骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到1+2+2+3+3+3=14枚金币。

示例2
输入:

1000

输出:

29820

备注:

对于100%的数据,1 ≤ K ≤ 10,000。

解题代码~: 😍

这里需要注意的是:==当count记录的每日金币结算次数和天数一样,则就可以停止了==

#include<stdio.h>
int main()
{
    int k = 0;
    int count = 0;
    int i = 0;
    int j = 0;
    int sum = 0;
    scanf("%d",&k);
    for (i = 1; i <= k; i++)
    {
        for (j = 0; j < i; j++)
        {
            sum += i;
            count++;
            if(k == count)//当count记录的每日金币结算次数和天数一样,则就可以停止了
            break;
        }
        if(k == count)//当count记录的每日金币结算次数和天数一样,则就可以停止了
        break;
    }
    printf("%d",sum);
    return 0;
}

BC97 回文对称数 😊

描述
今天牛牛学到了回文串,他想在数字里面找回文,即回文数,回文数是正着读与倒着读都一样的数,比如1221,343是回文数,433不是回文数。请输出不超过n的回文数。
输入描述:
输入一个整数n(1 <= n <= 100000)
输出描述:
从1开始按从小到大的顺序输出所有回文数
示例1
输入:

10

输出:

1
2
3
4
5
6
7
8
9
画图分析~: 😍
在这里插入图片描述
解题代码~: 😍

#include <stdio.h>
void print(int t, int n)
{
    int num = n;
    while (num)
    {
        t = t * 10 + num % 10;
        num /= 10;
    }
    if (t == n)
        printf("%d\n", n);

}
int main()
{
    int  n = 0;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
        int t = 0;
        print(t, i);
    }
    return 0;
}

总结撒花💞

   ==本篇文章旨在分享今日刷题的经验。希望大家通过阅读此文有所收获==!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘
相关文章
|
4天前
|
算法
刷题之Leetcode34题(超级详细)
刷题之Leetcode34题(超级详细)
19 0
|
4天前
|
索引
刷题之Leetcode707题(超级详细)
刷题之Leetcode707题(超级详细)
14 0
|
4天前
|
算法
刷题之Leetcode59题(超级详细)
刷题之Leetcode59题(超级详细)
10 0
|
9月前
|
存储 测试技术
蓝桥杯刷题篇①(上)
蓝桥杯刷题篇①(上)
72 0
|
4天前
|
存储 容器
leetcode349刷题打卡
leetcode349刷题打卡
18 0
|
4天前
leetcode206刷题打卡
leetcode206刷题打卡
12 0
|
11月前
|
存储 索引
牛客网刷题笔记
牛客网刷题笔记
34 0
|
11月前
蓝桥杯刷题打卡
蓝桥杯刷题打卡
|
12月前
|
存储 Java 测试技术
leetcode刷题(6)
各位朋友们大家好,今天是我的leetcode刷题系列的第六篇。这篇文章将与队列方面的知识相关,因为这些知识用C语言实现较为复杂,所以我们就只使用Java来实现。
|
12月前
|
存储 测试技术
leetcode刷题(1)
各位朋友们,大家好,从今天开始我将陆续为大家更新我自己每天的leedcode刷题,我将会为大家说明每一步的来由,保证你一天新学会几道题目。各位朋友可以跟着博主每天刷几道题,相信两个月后大家的代码能力可以得到明显的提高。那么接下来就开始今天的刷题之路了哦。