写在前面:因为在家上课水了一学期的网课,最近开始着手复习(预习)。所以这次做这个比赛明显感觉到有点生疏了,这东西还是得每天练一点保持一点手感。 1个小时八道题,我写完前六道的时候记得时间只剩24分钟左右了,又花了点时间改第六题,导致最后没时间细看第七题。

7-1 考试周:


思路:这题我记得我做的时候大致看了下题没太看懂,然后看了一下输入输出样例发现就是除一下就行,代码如下:

#include<bits/stdc++.h>
using namespace std;
inline void read(int &x)
{int w=1;x=0;char ch=getchar();while(!isdigit(ch))   {if(ch=='-')w=-1;ch=getchar();}while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();x*=w;
}
int a,b;
double x;
int main()
{read(a); read(b);x=a*1.0/b;printf("%d/%.1lf=%d",a,x,b);
}

7-2 真的恭喜你 (10分)


思路:这个题就是考察了if-else语句,看完题直接写就行了,代码如下:

#include<bits/stdc++.h>
using namespace std;
inline void read(int &x)
{int w=1;x=0;char ch=getchar();while(!isdigit(ch))   {if(ch=='-')w=-1;ch=getchar();}while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();x*=w;
}
int a;
int main()
{read(a);if(a>=90)  printf("gong xi ni kao le %d fen!",a);else    printf("kao le %d fen bie xie qi!",a);
}

7-3 平均成绩 (10分)


思路:for循环模拟题,五个变量,总成绩,男成绩,男人数,女成绩,女人数。然后输出的时候注意判断就行了,因为我比赛的时候没想那么多,所以下面的代码你可能看起来感觉有点笨拙~哈哈哈。

#include<bits/stdc++.h>
using namespace std;
inline void read(int &x)
{int w=1;x=0;char ch=getchar();while(!isdigit(ch))   {if(ch=='-')w=-1;ch=getchar();}while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();x*=w;
}
int cnt1,cnt2,n;
double sum,sum1,sum2;
int main()
{read(n);for(int i=0,x,y;i<n;i++){read(x); read(y);sum+=y;if(x) sum1+=y,cnt1++;else sum2+=y,cnt2++;}printf("%.1lf ",sum*1.0/n);if(!cnt1)  {printf("X ");}else   printf("%.1lf ",sum1*1.0/cnt1);if(!cnt2)  {printf("X");}else    printf("%.1lf",sum2*1.0/cnt2);}

7-4 古风A+B (15分)


思路:这个我感觉很多人可能想复杂了,就简简单单两个变量输入后一加,然后转化成字符串一个一个读出来,整型转字符串的函数很多,我这里用了to_string. 当然,如果你说你比赛的时候并不知道这些函数,也完全可以加完之后讲每一位存到一个整形数组里(负号不用存,特判一下)最后遍历输出就行了,代码如下:

#include<bits/stdc++.h>
using namespace std;
inline void read(int &x)
{int w=1;x=0;char ch=getchar();while(!isdigit(ch))   {if(ch=='-')w=-1;ch=getchar();}while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();x*=w;
}
int a,b;
int main()
{read(a); read(b);a+=b;string s=to_string(a);for(int i=0;i<s.size();i++)cout<<s[i]<<endl;}

7-5 猜近似数字 (15分)


思路:题目看起来有点难,其实就是两个操作:
1.位数一样不一样 不一样直接就是No
2.位数不一样的有几位 大于1位直接No
3.不一样的位数是否在1的范围内 不在直接No
什么?不是只有两个操作吗? 后两个可以同时处理,所以只有两个。
代码如下:

#include<bits/stdc++.h>
using namespace std;
inline void read(int &x)
{int w=1;x=0;char ch=getchar();while(!isdigit(ch))   {if(ch=='-')w=-1;ch=getchar();}while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();x*=w;
}
string s,s1;
int main()
{cin>>s;int len=s.length();while(1){cin>>s1;if(s1[0]=='-'&&s1[1]=='1') break;if(s1.length()!=len){puts("No");continue;}int cnt=0,flag=0;for(int i=0;i<len;i++){if(s1[i]==s[i])    continue;if(s1[i]!=s[i])   cnt++;if(cnt>1)    {puts("No"); flag=1;break;}if(s1[i]+1!=s[i]&&s1[i]-1!=s[i]){puts("No");flag=1;break;}}if(!flag)    puts("Yes");}
}

7-6 随机输一次 (20分)



思路:这道题相当于前几道就有点意思了,虽然也只是模拟题,但是写起来要注意的细节比较多。当时我提交后扣了2分,又改了一会儿没找到原因,最后比赛结束又给我加了两分(害,白耽误我这半天时间)。
分析:
1.如何存储这三个手势来方便输出赢或者输的手势。
2.如何判断他现在在第几个系统(因为每个系统赢的次数不一样,且是个环)
首先回答问题1.
最笨的办法就是直接if-else 再输出的时候if人家剪刀 就输出石头,以此类推。当然,这么写的话可想而知,只写个判断需要输出啥可能就要超多行。 然后我们也可以用一个字符串数组存储比如string s【】={“JianDao”,“ChuiZi”,“Bu”},然后利用他们的下标建立输赢关系。比如输入的是下标1,你输出的肯定是下标+1后的字符串。 还有一种解决办法是map,就是我比赛的时候用的一种方法,具体见下面代码。

然后回答问题2,
可以用一个数组存储所有系统的值,然后用一个下标来标记当前在哪个系统(我下面的代码用idx)。然后用一个取余操作可以表示出来这个环(具体见下面代码)。

#include<bits/stdc++.h>
using namespace std;
inline void read(int &x)
{int w=1;x=0;char ch=getchar();while(!isdigit(ch))   {if(ch=='-')w=-1;ch=getchar();}while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();x*=w;
}
int n,a[110],cnt=1;
string s;
map<string,int>m1;
map<int,string>m2,m3;
int main()
{
m1["JianDao"]=1;m1["ChuiZi"]=2;m1["Bu"]=3;
m2[1]="ChuiZi";m2[2]="Bu";m2[3]="JianDao";
m3[1]="Bu";m3[2]="JianDao";m3[3]="ChuiZi";read(n);for(int i=1;i<=n;i++) read(a[i]);int idx=1;while(1){cin>>s;if(s[0]=='E')   break;if(cnt<=a[idx]){cout<<m2[m1[s]]<<endl;cnt++;}else{cnt=1;idx=(idx+1)%n;if(idx==0)   idx=n;cout<<m3[m1[s]]<<endl;}}
}

7-7 阶乘的非零尾数 (20分)


唉,时间不够没看这个题,1分都没水到是真可惜。暂时不更这道题

7-8 三足鼎立 (25分)


思路:最后做这个题没多少时间了,
看了一下,随便拿两个,判断三个数能不能构成三角形
又看了一下,数据范围很友好。
好,直接双重循环偏分。

#include<bits/stdc++.h>
using namespace std;
inline void read(int &x)
{int w=1;x=0;char ch=getchar();while(!isdigit(ch))   {if(ch=='-')w=-1;ch=getchar();}while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();x*=w;
}
int a,b,x[10010],cnt;
int main()
{read(a);   read(b);for(int i=0;i<a;i++)  read(x[i]);for(int i=0;i<a;i++)for(int j=i+1;j<a;j++)if(x[i]+b>x[j]&&x[i]+x[j]>b&&x[j]+b>x[i])cnt++;cout<<cnt;
}


只水了16分。。。还可以。。

PTA-520钻石争霸赛题解【c/c++ 完整思路+代码】相关推荐

  1. PTA 520钻石争霸赛题解

    第一题 7-1 考试周 (5分) 考试周快到了,浙江大学的电子屏又调皮了-- 本题请你帮小编写一个自动倒计时的程序,对给定的日期(例如"腊八"就对应 8)和倒计时天数(例如电子屏上 ...

  2. PTA 520 钻石争霸赛 2021

    有一道题没来得及做,目前的排名是57,不知道后面会被挤到哪里. 文章目录 7-1 自动编程 (5 分) 7-2 加油冲鸭 (10 分) 7-3 520的表白 (10 分) 7-4 奇葩楼层 (15 分 ...

  3. 520 钻石争霸赛 题解

    说好的钻石难度,结果本人菜的一地..只有88分.... 文章目录 7-1 考试周 7-2 真的恭喜你 7-3 平均成绩 7-4 古风A+B 难度开始上升 7-5 猜近似数字 7-6 随机输一次 7-7 ...

  4. 520 钻石争霸赛 2021 PTA 1-6题

    520 钻石争霸赛 2021 PTA 7-1 自动编程 (5 分) 7-2 加油冲鸭 (10 分) 7-3 520的表白 (10 分) 7-4 奇葩楼层 (15 分) 7-5 大勾股定理 (15 分) ...

  5. 520 钻石争霸赛 2023

    活动链接 520 钻石争霸赛 2023 520-1 520无尽爱 520-2 心动指数 520-3 不要怕,爱! 520-4 天生一对 520-5 翻倒数 520-6 情侣数 520-7 撒狗粮 52 ...

  6. 【2023年电工杯数学建模竞赛】选题分析+A题B题完整思路+代码分享

    2023年电工杯B题(附带ChatGpt思路)思路已更新,请点击一下链接 [2023年电工杯数学建模竞赛B题人工智能对大学生学习影响的评价]完整思路分析+完整代码+(附带ChatGpt思路) 1.竞赛 ...

  7. PAT 520 钻石争霸赛 2021 118分题解(满分120)

    序: 为了锻炼自己的编程水平,参加了此次520的编程比赛,因此没有好好准备520礼物(大哭.png),下次520练习赛再也不参加了,还是npy更重要.但不过这次既然参加了,就总结一下吧.这次总分118 ...

  8. 【PTA】520 钻石争霸赛 2021,119分

    序 大概写了30mins多点,后来有事情去了就溜了没打完 勾股定理最后一个点WA了少了1分,错误数据是1e4大概暴力T了,不过没时间改了 7-1 自动编程 (5 分) 7-1 自动编程 (5 分) 输 ...

  9. 【拼题A】 520 钻石争霸赛 2023 题解

    520-1 520无尽爱 分数 5 作者 陈越 单位 浙江大学 <I Love You 1000 Times>是 The Platters 于 2019 年演唱的歌曲.在 520 这个日子 ...

最新文章

  1. Redis主从配置及通过Keepalived实现Redis自动切换高可用
  2. 前端学习(2848):鼠标点击事件
  3. linux 修改块大小,linux 查看及修改os系统块的大小
  4. android 怎么调用js项目_APP逆向神器之Frida【Android初级篇】
  5. 用移动智能设备访问Ossim系统
  6. python回调类_python 回调函数和回调方法的实现分析
  7. R_空间插值_必知必会(二)
  8. 利用npm命令创建一个Vue项目并安装依赖
  9. 输出数组元素(c语言)
  10. R语言七天入门教程七:项目实战
  11. 查询服务器时显示failbyOEM,java - 使用 Weblogic 12c,给出警告警告日志管理 BEA-170011 该服务器上的 LogBroadcaster 失败 - 堆栈内存溢出...
  12. 计算机网络基础交换机的基本配置实验报告,计算机网络基础实验报告
  13. 设计模式:设配器模式
  14. 等额本息贷款 ——已知贷款本金、月还款额、贷款月数,反推贷款月利率、年利率-java实现
  15. CVPR 2022 Oral | MLP进军底层视觉!谷歌提出MAXIM:刷榜多个图像处理任务,代码已开源!...
  16. 多个勤于奋,到底那个是真的?勤于奋被他人抄袭
  17. 沟通的艺术:看人入里,看出人外 - part 3
  18. Windos 下python2.7安装 pymssql 解决方案
  19. hdu 1789 贪心算法
  20. 如何理解泰勒展开式,他有何用途?

热门文章

  1. DSP广告精准投放平台如何快速提升品牌知名度
  2. 全志V3s学习记录(13)OV2640的使用
  3. html诗集代码简单,自制简单的诗歌搜索系统
  4. Connectify+Wireshark捕获手机APP的数据包
  5. maven阿里云中央仓库
  6. 侯捷C++八部曲笔记(四、C++2.0新特性)
  7. 邮件发送html, 分别用p,code,xmp三个标签嵌入代码段后的样式比较
  8. 2021单招十类计算机试题,2021年河北省高职单招考试十类和高职单招对口电子电工类、对口计算机类联考文化素质考试(数学)考试大纲...
  9. oracle Day1
  10. 数据结构单链表——一元多项式求和(C语言版)