2021-11-27 学习的打卡学习第五天(比赛总结/总结失败)

菜鸟杯考砸了(ノಥ益ಥ),我竟然只写了3题,学校网不好我先做三题,等了一小时,然后断断续续的做了四题,最后一小时交上去全错了,又来不及改了,心态炸裂。我觉得应该是粗心了,加上网站搞人心态......

我现在觉得我是铁废物

首先是大数相乘:

描述

今年EDG在11月6号参加世界数学竞赛总决赛,一不小心就拿了一个世界冠军,现在好了,上面就有一个调皮的主持人,问了EDG一个世界级难题。
题目是a*b=?
Flandre当时就是???
而jiejie非常猛,一下就算出来了。

Flandre又是???

现在这个难题,需要你这位聪明的大神来拯救Flandre。

格式

输入格式

输入两个数A和B (0 <= A, B <= 1018)

输出格式

输出A*B的值 

样例

1 2

样例输出 

2


#include<stdio.h>
#include<string.h>
#define N 1000
int main()
{
    char a1[N],b1[N];
    int a2[N]={0},b2[N]={0},c[N]={0};
    int i=0,r=0;
    for(i=0;i<1000;i++)
    {
        a1[i]='0';
        b1[i]='0';
    }
    gets(a1);
    gets(b1);
    int n1=0,n2=0;
    n1=strlen(a1);
    n2=strlen(b1);
    for(i=0;i<n1;i++)
        a2[i]=a1[n1-i-1]-'0';
    for(i=0;i<n2;i++)
        b2[i]=b1[n2-i-1]-'0';
    for(i=0;i<n2;i++)
    {
        for(r=0;r<n1;r++)
          c[i+r]=c[i+r]+a2[r]*b2[i];
    }
    int n3=n1+n2;
    for(i=0;i<n3;i++)
    {
        if(c[i]>=10)
        {
            c[i+1]=c[i+1]+c[i]/10;
            c[i]=c[i]%10;
        }
    }
    i=i-1;
    while(c[i]==0&&i>=0)
        i--;
    if(i<0)
        printf("0");
    else
    {
        for(;i>=0;i--)
            printf("%d",c[i]);
    }
    return 0;
}

答案错误43%,我_(:з」∠)_,在别的网站明明对了啊.....

然后是

描述

lzl的英语水平很烂,但是4级考试近在眼前,所以他去求助他的师傅,他师傅传授给他一招首字母记忆法。下面是他还没有记住的单词:apple,  bear, banana, candy, difference, Do, easy, fly, good, home, House, ice-cream, juice, kill, lyy, math, near, open, parent, quit, road, way, zero。

格式

输入格式

输入一串字符串 s, 字母有大写或小写,有数字。(0 <= |s| <= 1000);
(多组输入)大小写可以模糊记忆, eg: C 或 c 都是 candy!

输出格式

1. 如果上面这个字母开头的单词, 数量为1,则输出这个单词。
2.如果上面这个字母开头的单词,数量>1, 则输出'我记得有点模糊'。
3.如果上面这个字母开头的单词, 数量 < 1, 则输出'这个单词我已经记住了'。
4.如果是数字,则输出'这是一个数字 + 值'。
注意输出一个换行。

 

样例

样例输入 

abCD123
666xyz

样例输出 

apple
我记得有点模糊
candy
我记得有点模糊
这是一个数字1
这是一个数字2
这是一个数字3
这是一个数字6
这是一个数字6
这是一个数字6
这个单词我已经记住了
这个单词我已经记住了
zero		

这一题可惜,是这样的:

Main.c: In function 'main':
Main.c:10:8: warning: implicit declaration of function 'strlwr'; did you mean 'strlen'? [-Wimplicit-function-declaration]
   10 |        strlwr(a);
      |        ^~~~~~
      |        strlen
/usr/bin/ld: /tmp/ccCrB1mD.o: in function `main':
Main.c:(.text.startup+0x50): undefined reference to `strlwr'
collect2: error: ld returned 1 exit status

学校网站无法识别strlwr函数,一直运行错误。哎.....

这题是转化成小写,然后switch case的。

然后是

描述

牛子爷赚了钱想存进T银行,但是T银行是7进制银行,里面的存款都是用7进制显示的.
牛子爷每次存完钱之后,不知道自己现在在银行的存款是多少
因为他不会10进制转换成7进制。
聪明的你,能帮帮牛子爷嘛?

格式

输入格式

输入一个数T代表有T组测试样例(1<=t<=1000)
第一行是两个正整数n,m(n代表牛子爷存这笔钱之前在T银行的存款(牛子爷在上次在T银行存款时看的),m代表牛子爷要存的钱的数量)
(0<=n<=10^6,0<=m<=10^6)


注意  n是7进制的数,m是10进制的数

输出格式

牛子爷在存完这笔钱之后在T银行的存款

样例

样例输入 Copy

2
10 7
6 10

样例输出 Copy

20
22		

提示

在T银行的存款都是用7进制显示
10元存进T银行,你在T银行的存款会加上13(10转换成7进制是13)
牛子爷要存的钱是10进制数

#include<stdio.h>
#include<string.h>
#define N 1000
int q(int);
int z(int);
int main()
{
   int n,i=0,a,b,c;
   scanf("%d",&n);
   for(i=0;i<n;i++)
   {
       scanf("%d %d",&a,&b);
       c=z(a)+b;
       printf("%d\n",q(c));
   }
   return 0;
}
int q(int a)
{
    int b=0,c=10,d=0;
    if(a>6)
    {
    while(a>6)
    {
        b=a/7*c;
        d=d+a%7*c/10;
        b=b+d;
        a=a/7;
        c=c*10;
    }
    }
    else
    {
        b=a;
    }
    return b;
}
int z(int a)
{
    int b=0,c=7,d=0;
    if(a>6)
    {
    while(a>6)
    {
        b=a/10*c;
        d=d+a%10*c/7;
        b=b+d;
        a=a/10;
        c=c*7;
    }
    }
    else
    {
        b=a;
    }
    return b;
}

我错误33%,然后回寝室又敲了一遍,它对了。(●—●)为什么!!!

然后是

描述

有梦想才有希望,有希望才有力量,有力量才有辉煌,让我们高举右手,面对最后100天。
我们庄严宣誓:
自信创造奇迹,拼搏成就梦想!
智慧主宰世界,合作共享成功!
脚踏实地海让路,锲而不舍山移位!
竭尽全力拼过程,问心无愧看结果!
奋战一百天,给父母一个惊喜!
奋战一百天,给学校一个奇迹!
奋战一百天,给未来一片光明!

这是一个梦,但不完全是一个梦。你依稀记得当初宣誓的情景,所以当别人喊出前面一句话时,你会情不自禁的说出后面那句话。
但是我们已经高考完了,所以这个宣誓词与我们没有关系了,我们应该吧目光放得更加长远.
所以你找到了少年中国说,并且和宣誓词一样,当你听到前一句时,你会情不自禁的说出后面那句。


《少年中国说》


今日之责任,不在他人,而全在我少年。
少年智则国智,少年富则国富;
少年强则国强,少年独立则国独立;
少年自由则国自由,少年进步则国进步;
少年胜于欧洲则国胜于欧洲,少年雄于地球则国雄于地球。
红日初升,其道大光。
河出伏流,一泻汪洋。
潜龙腾渊,鳞爪飞扬。
乳虎啸谷,百兽震惶。
鹰隼试翼,风尘吸张。
奇花初胎,矞矞皇皇。
干将发硎,有作其芒。
天戴其苍,地履其黄。
纵有千古,横有八荒。
前途似海,来日方长。
美哉,我少年中国,与天不老!
壮哉,我中国少年,与国无疆!
 

格式

输入格式

多组输入
每组输入少年中国说的前一句话.(当某一句中有2个逗号时,他输入前面一小句,你需要输出后面两个小句,详情看样例)

输出格式

输出题目给出的输入的后一句。(当某一句中有2个逗号时,他输入前面一小句,你需要输出后面两个小句,详情看样例)

样例

样例输入 

今日之责任,
少年智则国智,
少年强则国强,
少年自由则国自由,
少年胜于欧洲则国胜于欧洲,
红日初升,
河出伏流,
潜龙腾渊,
乳虎啸谷,
鹰隼试翼,
奇花初胎,
干将发硎,
天戴其苍,
纵有千古,
前途似海,
美哉,
壮哉,

样例输出 

不在他人,而全在我少年。
少年富则国富;
少年独立则国独立;
少年进步则国进步;
少年雄于地球则国雄于地球。
其道大光。
一泻汪洋。
鳞爪飞扬。
百兽震惶。
风尘吸张。
矞矞皇皇。
有作其芒。
地履其黄。
横有八荒。
来日方长。
我少年中国,与天不老!
我中国少年,与国无疆!		

典中典,每个人对认为这题很简单,但:

#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    char c;
    int n,i;
    while(1)
    {
        gets(a);
        n=strlen(a);
        /*switch(a[2])
        {
            case '之':printf("不在他人,而全在我少年。");break;
            default:printf("%d\n",n);
        }*/
        for(i=0;i<n;i++)
        printf("%c ",a[i]);
    }
    return 0;
}

有新手知道这段代码的输入”今日之责任,“后输出结果吗?

结果:

今日之责任,
????????????

这题我打算用switch case例出来的。

然后我很好奇,又试了一下:

#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    char c;
    int n,i;
    while(1)
    {
        gets(a);
        n=strlen(a);
        /*switch(a[2])
        {
            case '之':printf("不在他人,而全在我少年。");break;
            default:printf("%d\n",n);
        }*/
        printf("%d",n);
    }
    return 0;
}

结果是12;

中文占了2个数组的位置,我又尝试了一种方法:

#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    char c;
    int n,i;
    while(1)
    {
        gets(a);
        n=strlen(a);
        /*switch(a[2])
        {
            case '之':printf("不在他人,而全在我少年。");break;
            default:printf("%d\n",n);
        }*/
        puts(a);
    }
    return 0;
}

输出是:

今日之责任,
今日之责任,

其实挺有趣的,这题switch函数无能为力。

不知不觉快2点了啊,明天再学学结构体,还是有一些不熟悉,这次考试13题还有5题题目都没有看,哎。。网不好看不了题是一方面,另一方面还是因为太菜了,最后网好的一小时存下的4题都是有一些错误的,手忙脚乱的改代码去了,哎。还要继续努力才行呀。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值