2021/11/27学习总结

  • 10:00-11:30   刷题目(几道超级简单的题目 就不说了嘻嘻)
  • 13:00-18:30    菜鸟杯比赛(我是菜鸡呜呜)
  • 20:00-21:30     散步
  • 22:00-23:00     做大物作业(小猿搜题是个好东西)
  • 接下来自然说的就是菜鸟杯刷的5道题了
  • 1: 第一道题是白兰王。上题目:

描述

吉首大学优秀大学生小勋很努力,很优秀,但是现在他想要成为白兰鸽,开始摆烂了。

此时另一位三好学生大鹏也决定开摆,为了争夺吉首大学白兰王,他们决定决一死战,决战内容如下:有一个字符串 S ,只包含数字 0−9 ,且长度为奇数,两人轮流选择字符串中的一个数字删掉,当字符串只剩下 11 个字符时游戏结束。如果最后字符串开头的数字是 2 ,则小勋获胜,否则大鹏获胜。

小勋先手(因为他是吉首大学优秀大学生),两人都希望自己能成为本届白兰王,并且保证两人都会做出最优决策,问最后谁能获得这至高无上的称号。

格式

输入格式

第一行输入一个整数 n(13≤n≤105) 代表字符串S的长度,保证n为奇数

第二行输入字符串 S

输出格式

若小勋获胜,输出 yyds ,若大鹏获胜,输出 orz

样例

样例输入 Copy

13
2222222234567

样例输出 Copy

yyds		

 这一道题目呢,我的思路是这样的:首先小勋先手,那么小勋肯定是要从左到又去掉不是2的数,而小鹏肯定是要从左到右去掉是2的数,但是我想着如果要去掉,那就是让每个数往前移动一位,那么时间就需要比较久,所以我想着把去掉的数变成一个字母不就好了吗?(细节操作好吧)果然在我不断修改后,这个题目也是千辛万苦的做出了,话不多说,上代码:

#include<stdio.h>
#include<string.h>

int main()
{
    int n;
    char str[100000]={0},ch = 'a';
    scanf("%d%s",&n,str);
    int m = n;
    for(int i =n-1;i>11;i-=2)
    {
        int cnt1 = 0,cnt2 = 0;
        for(int j = 0;j<strlen(str);j++)
        {
            if(str[j]>='0'&&str[j]<='9'&&str[j]!='2')
            {
                str[j] = 'a';
                ++cnt1;
                break;
            }
        }
        if(cnt1==0)
        {
           break;
        }
        for(int x = 0;x<strlen(str);x++)
        {
            if(str[x]=='2')
            {
                str[x] = 'a';
                ++cnt2;
                break;
            }

        }
        if(cnt2==0)
        {
            break;
        }
    }
   
    for(int i = 0;i<n;i++)
    {
        if(str[i]=='2'&&str[i]>='0'&&str[i]<='9')
        {
            printf("yyds\n");
            break;
        }
        else if(str[i]>='0'&&str[i]<='9'&&str[i]!='2')
        {
            printf("orz\n");
            break;
        }
        else
        {
            continue;
        }
    }
}
  • 2:第二道题是D题:冥冥之中自有7意

              这道题的话应该就不用讲了吧,再看下一道题

  • 3:第三道题是E题:今天是个好日子!

这道题也不用说了吧 这题还真是试了好几遍(还以为跟之前那样子有坑呢,没想到这次居然没有!!)

  • 4:第四道题是J题:英语单词记忆法

这一道题呢,我用的是最愚蠢的方法:就是把每一种情况都打出来,不知道有没有人跟我一样愚蠢哈哈哈,上代码:

#include<stdio.h>
#include<string.h>
int main()
{
    char str[10000]={};
    while(scanf("%s",str)!=EOF)
    {
        for(int i = 0;i<strlen(str);i++)
        {
            if(str[i]=='a'||str[i]=='A')
            {
                printf("apple\n");
            }
            if(str[i]=='b'||str[i]=='B')
            {
                printf("我记得有点模糊\n");
            }
            if(str[i]=='c'||str[i]=='C')
            {
                printf("candy\n");
            }
            if(str[i]=='d'||str[i]=='D')
            {
                printf("我记得有点模糊\n");
            }
            if(str[i]=='e'||str[i]=='E')
            {
                printf("easy\n");
            }
            if(str[i]=='f'||str[i]=='F')
            {
                printf("fly\n");
            }
            if(str[i]=='g'||str[i]=='G')
            {
                printf("good\n");
            }
            if(str[i]=='h'||str[i]=='H')
            {
                printf("我记得有点模糊\n");
            }
            if(str[i]=='I'||str[i]=='i')
            {
                printf("ice-cream\n");
            }
            if(str[i]=='j'||str[i]=='J')
            {
                printf("juice\n");
            }
            if(str[i]=='k'||str[i]=='K')
            {
                printf("kill\n");
            }
            if(str[i]=='l'||str[i]=='L')
            {
                printf("lyy\n");
            }
            if(str[i]=='m'||str[i]=='M')
            {
                printf("math\n");
            }
            if(str[i]=='n'||str[i]=='N')
            {
                printf("near\n");
            }
            if(str[i]=='o'||str[i]=='O')
            {
                printf("open\n");
            }
            if(str[i]=='p'||str[i]=='P')
            {
                printf("parent\n");
            }
            if(str[i]=='q'||str[i]=='Q')
            {
                printf("quit\n");
            }
            if(str[i]=='r'||str[i]=='R')
            {
                printf("road\n");
            }
            if(str[i]=='s'||str[i]=='t'||str[i]=='u'||str[i]=='v'||str[i]=='x'||str[i]=='y'||str[i]=='S'||str[i]=='T'||str[i]=='U'||str[i]=='V'||str[i]=='X'||str[i]=='Y')
            {
                printf("这个单词我已经记住了\n");
            }
            if(str[i]=='W'||str[i]=='w')
            {
                printf("way\n");
            }
            if(str[i]=='z'||str[i]=='Z')
            {
                printf("zero\n");
            }
            if(str[i]>='0'&&str[i]<='9')
            {
                printf("这是一个数字%d\n",str[i]-'0');
            }

        }
    }
}

就是打了这么长。。。。

  • 第五道题目是M题:要升天的EDG

这道题目呢其实就是大数相乘(跟大数相加差不多)就是先定义两个字符串,输入,然后把字符串的每个数字分别放在不同数组中,然后让每一位都依次相乘,放在第三个数组中,然后用循环把每一个数组中大于10的进位在取余,最后再逆序输出(记住这道题用字符串的话,当其中一个数等于0时,最后就没有输出了!!所以,在前面加个如果其中一位数等于0时,输出0),话不多说,上代码:

#include<stdio.h>
#include<string.h>

int main()
{
    char str1[100000],str2[100000];
    int a[10000],b[10000],c[10000];
    scanf("%s%s",str1,str2);
    if(str1[0]=='0'||str2[0]=='0')
        printf("0");
    int s1 = strlen(str1);
    int s2 = strlen(str2);
    for(int i = 0;i<s1||i<s2;i++)
    {
        a[i] = str1[s1-1-i]-48;
        b[i] = str2[s2-1-i]-48;
    }
    int x;
    for(int i = 0;i<s1;i++)
    {
        x = i;
        for(int j = 0;j<s2;j++)
        {
            c[x++] += a[i]*b[j];
        }
    }
    int y;
    for(int i = 0;i<=x;i++)
    {
        y = c[i]/10;
        c[i+1]+=y;
        c[i]=c[i]%10;
    }
    while(c[x]==0)
    {
        x--;
    }
    for(int i = x;i>=0;i--)
    {
        printf("%d",c[i]);
    }
}
  • 接下来说一下还有两道错误的题目
  • 1:问题G:存钱

                   那时候做的时候就在想怎么把十进制变成7进制,也是浪费了我好多脑细胞和头发呜呜,最后终于知道怎么转了,最后代码也是圆满完成,但是提交只有答案错误%67,怎么修改都是这样,改了1个小时还是%67,根本不知道自己哪里错了(这才是最悲催的事情吧。。。。),代码是错的,就不发了

  • 2:问题K:《签到题》

             时间超限 不说了都是泪

  • 反思:对于今天的测试,结果是非常不理想的,这可以看出来我自己平时的很多不足,我对此也非常的惭愧,在今后我一定会更加努力,弥补自己的不足,更上一层楼。
  • 明天继续加油,晚安家人们
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烂尾歌·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值