栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C/C++牛客每日必刷】--- 牛客刷题系列

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C/C++牛客每日必刷】--- 牛客刷题系列



个人名片:

作者简介:一名大一在校生
‍❄️个人主页:小新爱学习.
个人WeChat:hmmwx53
️系列专栏:零基础学java ----- 重识c语言
每日一句:路是自己选的,没有输赢,只有值不值得


文章目录
    • 题目:AB1 【模板】栈✨
      • 描述✨
      • 输入描述✨:
      • 输出描述✨:
      • 示例1✨
      • 题解代码✨:
    • 题目:NC65 斐波那契数列
      • 描述
      • 输入描述:
      • 返回值描述:
      • 示例:
      • 解题代码:
  • 想要快速刷题,了解更多欢迎访问 : [牛客网](https://www.nowcoder.com/link/pc_csdncpt_xxaxx_c)


前言:

最近有许多小伙伴问小新有没有好用的刷题网站,想提升一下自我能力
经过小新缜密的思考与亲身体验,推荐超实用的点击直接访问牛客网
里面用丰富的大厂面试真题、各类算法由易到难层层递进、专项题库应有尽有,还不快来体验体验


题目:AB1 【模板】栈✨ 描述✨

请你实现一个栈。
操作:
push x:将 加xx 入栈,保证 xx 为 int 型整数。
pop:输出栈顶,并让栈顶出栈
top:输出栈顶,栈顶不出栈

输入描述✨:

第一行为一个正整数 nn ,代表操作次数。(1 leq n leq 100000)(1≤n≤100000)
接下来的 nn ,每行为一个字符串,代表一个操作。保证操作是题目描述中三种中的一种。

输出描述✨:

如果操作为push,则不输出任何东西。
如果为另外两种,若栈为空,则输出 "error“
否则按对应操作输出。

示例1✨

输入:
6
push 1
pop
top
push 2
push 3
pop
复制
输出:
1
error
3

题解代码✨:
#include
#include
#define MAX 100000
typedef struct Stack{
    int a[MAX];
    int topp;
}*LStack;
void inistack(LStack s){
    s->topp=0;
}
void push(LStack s,int x){
    s->a[s->topp]=x;
    s->topp++;
}
int pop(LStack s){
    if(s->topp==0){
        return -1;
    }
    return s->a[--s->topp];
    
}
int top(LStack s){
    if(s->topp==0){
        return -1;
    }
    int num=s->a[--s->topp];
    s->topp++;
    return num;
}
int main(){
    LStack s=(LStack)malloc(sizeof(struct Stack));
    inistack(s);
    int n=0;
    scanf("%d",&n);
    while(n--){
        char *str=(char*)malloc(6*sizeof(char));
        
        scanf("%s",str);
        if(!strcmp(str,"push")){
            int num=0;
            scanf("%d",&num);
            push(s,num);
        }
        if(!strcmp(str,"pop")){
            int num1=pop(s);
            if(num1==-1){
				printf("errorn");
				continue;
			}
            printf("%dn",num1);
        }
        if(!strcmp(str,"top")){
            int num2=top(s);
            if(num2==-1){
				printf("errorn");
				continue;
			}
            printf("%dn",num2);
        }
        
    }
    
    
    
    
    return 0;
}


题目:NC65 斐波那契数列 描述

大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。
斐波那契数列是一个满足 fib(x)=left{ begin{array}{rcl} 1 & {x=1,2} fib(x-1)+fib(x-2) &{x>2} end{array} right.fib(x)={
1
fib(x−1)+fib(x−2)
​

x=1,2
x>2
​
的数列
数据范围:1leq nleq 401≤n≤40
要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n) ,本题也有时间复杂度 O(logn)O(logn) 的解法

输入描述:

一个正整数n

返回值描述:

输出一个正整数。

示例:

输入:4
返回值:3
说明:
根据斐波那契数列的定义可知,fib(1)=1,fib(2)=1,fib(3)=fib(3-1)+fib(3-2)=2,fib(4)=fib(4-1)+fib(4-2)=3,所以答案为3。

示例2
输入:1
返回值:1

示例3
输入:2
返回值:1

解题代码:
int Fibonacci(int n ) {
    // write code here
      int a[50];
    a[1]=1,a[2]=1;
    for(int i=3;i
        a[i]=a[i-1]+a[i-2];//这里一定要避免出现a[-1]等的情况
    }
    return a[n];
}

想要快速刷题,了解更多欢迎访问 : 牛客网

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012176.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号