您当前的位置: 首页 >  c++

小新爱学习.

暂无认证

  • 2浏览

    0关注

    89博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

小新爱学习. 发布时间:2022-07-11 10:33:04 ,浏览量:2

在这里插入图片描述 在这里插入图片描述

在这里插入图片描述

写在前面:

你是否想要掌握人工智能的最新技术和应用?你是否想要成为未来社会的创新者和领导者?你是否想要和全球的优秀导师和同学一起学习和交流?如果你的答案是肯定的,那么欢迎来到床长人工智能教程网站,这里是你实现梦想的起点!

个人名片:

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

文章目录
    • 写在前面:
    • 题目:AB1 【模板】栈✨
      • 描述✨
      • 输入描述✨:
      • 输出描述✨:
      • 示例1✨
      • 题解代码✨:
    • 题目:NC65 斐波那契数列🎉
      • 描述🎉
      • 输入描述🎉:
      • 返回值描述🎉:
      • 示例🎉:
      • 解题代码🎉:

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

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

输入描述✨:

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

输出描述✨:

如果操作为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("error\n");
				continue;
			}
            printf("%d\n",num1);
        }
        if(!strcmp(str,"top")){
            int num2=top(s);
            if(num2==-1){
				printf("error\n");
				continue;
			}
            printf("%d\n",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 ​ 的数列 数据范围:1\leq n\leq 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

解题代码🎉:
/**
 * 
 * @param n int整型 
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int Fibonacci(int n ) {
    // write code here
      int a[50];
    a[1]=1,a[2]=1;
    for(int i=3;i            
关注
打赏
1663374351
查看更多评论
0.0452s