牛客网刷题训练(四)

简介: 👩‍💻博客主页:[风起 风落](https://blog.csdn.net/qq_62939852?spm=1001.2101.3001.5343)的博客主页✨欢迎关注🖱点赞🎀收藏⭐留言✒👕参考网站:牛客网💻首发时间:🎞2022年7月30日🎠🎨你的收入跟你的不可替代成正比🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦💬给大家介绍一个求职刷题收割offer的地方👉[点击网站](https://www.nowcoder.com/link/pc_csdncpt_fqfl_c)

👩‍💻博客主页:风起 风落的博客主页

✨欢迎关注🖱点赞🎀收藏⭐留言✒

👕参考网站:牛客网

💻首发时间:🎞2022年7月30日🎠

🎨你的收入跟你的不可替代成正比

🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦

💬给大家介绍一个求职刷题收割offer的地方👉点击网站

在这里插入图片描述

@TOC

前言


1.BC106 上三角矩阵判定

描述

KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。

输入描述:

第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (1≤n≤10)

从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。

输出描述:

一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。

示例1

输入:

3

1 2 3

0 4 5

0 0 6

输出:

YES

#include<stdio.h>
int main()
{
    int n=0;
    scanf("%d",&n);
    int i=0;
    int j=0;
    int sum=1;
    int sum2=0;
    int arr[10][10]={0};
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
         scanf("%d",&arr[i][j]);
        }
    }
     for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if(j<i)
            {
                sum2+=arr[i][j];
            }
        }
    }
 if(sum2==0)
 {
     printf("YES\n");
 }
 else
 {
      printf("NO\n");
 }
}

这道题主要的意思是 :判断主对角线下的数是否为0

在这里插入图片描述在这里寻找发现 在当i ,j坐标为 (1,0) (2,0) (2,1) 时恰好为0其中每个j都小于i 将其所有相加再一起, 若为0就是, 否则就不是

2.BC98 序列中删除指定数字

描述

有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。

数据范围:序列长度和序列中的值都满足 1 \le n \le 501≤n≤50

输入描述:

第一行输入一个整数(0≤N≤50)。

第二行输入N个整数,输入用空格分隔的N个整数。

第三行输入想要进行删除的一个整数。

输出描述:

输出为一行,删除指定数字之后的序列。

示例1

输入:

6

1 2 3 4 5 9

4

输出:

1 2 3 5 9

示例2

输入:

5

1 2 3 4 6

5

输出:

1 2 3 4 6

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int N = 0;
    scanf("%d", &N);
    int i = 0;
    int count = 0;
    int arr[50] = { 0 };
    for (i = 0; i < N; i++)
    {
        scanf("%d", &arr[i]);
    }
    int M = 0;
    int j = 0;
    scanf("%d", &M);
    for (i = 0; i < N; i++)
    {
        if (arr[i] == M)
        {
            for (j = i; j < N; j++)
            {
                arr[j] = arr[j + 1];
            }
            count++;
            i--;
        }
    }
    for (i = 0; i < N - count; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

我的想法就是从头遍历   若发现删除的数字 就把后面的数字往前赋值

但是通过调试发现两点失误

1.要删除的数字不止一个 所以我用一个count记录每次发现删除数字的个数 最后遍历时再减去

2.

在这里插入图片描述为什么再输出时还有一个要删除的数字4因为这里的两个要删除的数字4是连贯的, 所以在一次把把后面的数字往前赋值时就把i传回到之前的位置了,   而出了循环后 i是要往后走的所以如果进入发现删除的数字, 就把后面的数字往前赋值的这个循环 就把 i 往回走一个

3.BC115 小乐乐与欧几里得

描述

小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数,但是他竟然不会求两个正整数的最大公约数与最小公倍数之和,请你帮助他解决这个问题。

输入描述:

每组输入包含两个正整数n和m。(1 ≤ n ≤ 109,1 ≤ m ≤ 109)

输出描述:

对于每组输入,输出一个正整数,为n和m的最大公约数与最小公倍数之和

示例1

输入:

10 20

输出:

30

示例2

输入:

15 20

输出:

65

#include<stdio.h>
int main()
{
    long long m=0;
    long long n=0;
    long long r=0;
    scanf("%lld%lld",&m,&n);
    long p1=m;
    long p2=n;
    while(m%n)
    {
        r=m%n;
        m=n;
        n=r;
    }
    long long ret=(p1*p2)/n+n;
    printf("%lld\n",ret);
    return 0;
}
在这里插入图片描述  

这里我也是报错了  一看这个预期输出的值 就是一个超级大的数

所以int时放不下的  改为long long就好了

4.BC117 小乐乐走台阶

描述

小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?

输入描述:

输入包含一个整数n (1 ≤ n ≤ 30)

输出描述:

输出一个整数,即小乐乐可以走的方法数。

示例1

输入:

2

输出:

2

示例2

输入:

10

输出:

89

#include<stdio.h>
int fib(int n)
{
    if(n==1)
    {
        return 1;
    }
    if(n==2)
    {
        return 2;
    }
    return fib(n-1)+fib(n-2);
}
int main()
{
    int n=0;
    scanf("%d",&n);
    int ret=fib(n);
    printf("%d\n",ret);
    return 0;
}

这道题别看是小乐乐的问题 其实就是青蛙跳台阶问题

也可以看作是斐波那契数   即  1  1  2  3  5  7 12 ………

只有一个台阶时 只有一种跳法  

二个台阶时,    可以 跳两个1 或者1个2 有两种跳法

三个台阶时,可以 跳3个 1 ,先1个1 后1个 2 , 先1个2后1个1 即三种跳法

所以斐波那契数的变种即 1 2 3 5 8…

正好第三种是第一种+第二种

总结

通过以上来自牛客网的练习题

相信会对学习c语言更有兴趣 ,让我们一起加油吧  

不太自信的小伙伴可以看看这个训练

在这里插入图片描述
目录
相关文章
|
人工智能 vr&ar
VR技术、特点、应用领域简介
VR技术、特点、应用领域简介
854 1
|
人工智能 PyTorch 算法框架/工具
这一篇让你彻底搞懂贝塞尔曲线
贝塞尔曲线不懂画?不知道怎么回事?看这一篇就够了!用图形,点曲线运动图和公式推导,让你彻底搞懂贝塞尔曲线的运行原理!
3974 0
这一篇让你彻底搞懂贝塞尔曲线
|
机器学习/深度学习 人工智能 自然语言处理
【专栏】Python在人工智能领域的应用现状、优势及未来趋势
【4月更文挑战第27天】本文探讨了Python在人工智能领域的应用现状、优势及未来趋势。Python作为数据科学、机器学习、深度学习和自然语言处理的首选语言,拥有丰富的库如NumPy、Pandas、TensorFlow和NLTK等。其简洁易学、跨平台和活跃社区等特点促进了AI的普及和发展。未来,Python将在强化深度学习、融合新兴技术、提高可解释性和人才培养等方面持续发挥关键作用。
3008 2
|
自然语言处理 数据可视化 搜索推荐
构建一个基于通义千问的智能客服系统
公司开发一个智能客服系统,帮助用户快速找到他们需要的商品信息、解决问题,并提供个性化的购物建议。系统需要能够处理大量的用户提问,并以自然语言的形式给出准确的回答。
886 1
|
编解码 监控 Android开发
Pico Neo 3教程☀️ 四、开发者工具:实时监控工具(Metrics Tool)
Pico Neo 3教程☀️ 四、开发者工具:实时监控工具(Metrics Tool)
|
机器学习/深度学习 人工智能 自然语言处理
国内怎么使用Gemini ?gemini使用经验分享!
Gemini,是Google潜心研发的划时代大型语言模型(LLM),它如同一位博学多才的语言大师,精通文本生成、翻译、摘要和对话生成等多种自然语言处理任务。作为Google AI皇冠上的明珠,Gemini融合了尖端的科研成果和技术,将自然语言处理的准确性和效率提升到前所未有的高度。
|
JSON 前端开发 API
程序技术好文:百度网盘真实地址解析(告别下载百度网盘)
程序技术好文:百度网盘真实地址解析(告别下载百度网盘)
2193 0
|
测试技术 开发工具 芯片
Open Chip Community (OCC)
Open Chip Community (OCC) 是一个开源芯片社区,旨在推动开源芯片的发展和普及。OCC 的目标是为开发人员提供一个开放透明的平台,让他们可以共同协作、创新和分享开源芯片技术。
1046 3

热门文章

最新文章