1800,风遁螺旋丸

思路解析:输入字符串包含空格数字小写字母,仅仅逆序输出其中的小写字母。

参考代码:

注意,在这个oj上提交时,如需使用gets函数,则必须选择c语言提交才可以。

getchar的作用是吃掉回车,在输入完数字之后,需要按下回车键才继续输入字符串,若没有getchar吃掉回车,那么你的回车键会被作为字符串读入,从而影响程序的运行。

#include<stdio.h>
#include<string.h>
int main()
{int n;scanf("%d",&n);getchar();while(n--){char a[43];gets(a);int len = strlen(a);for(int i = len-1;i >=0;i--){if(a[i] == ' '||a[i]>='1'&&a[i] <='9'){continue;}printf("%c",a[i]);}printf("\n");}return 0;
}

或者:使用getline读入

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{int m;cin>>m;getchar();while(m--){char a[50];cin.getline(a,50);for(int i=strlen(a)-1;i>=0;i--){if(a[i]>='a'&&a[i]<='z'){cout<<a[i];}}cout<<endl;}return 0;
}

关于c和c++中各种读入数据的方法,在此不再赘述,大家可以自行查阅了解。

1801,风遁螺旋手里剑

思路解析:签到题,直接输出即可,不难看出,一共有24个字。

参考代码:

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{cout<<"24"<<endl;return 0;
}

1802,大玉螺旋丸

思路解析:遇到这种题目,建议现在纸上写一写前几种情况,观察之后不难发现,其实就是斐波那契数列。

 参考代码:此处示例为递归实现斐波那契数列

#include<stdio.h>
int fibonaci(int n)
{if(n == 1){return 1;}else if(n == 2){return 1;}return fibonaci(n-1)+fibonaci(n-2);
}
int main()
{int n;scanf("%d",&n);printf("%d",fibonaci(n));return 0;
}

或者:for循环实现

#include<stdio.h>
int main()
{int n;scanf("%d",&n);int a[n];a[0]=1;a[1]=1;for(int i=0;i<n;i++){a[i+2]=a[i]+a[i+1]; }printf("%d",a[n-1]); return 0;
}

1803,惑星螺旋丸

思路解析:矩阵转置讲过一次,后来还又说了一次细节,再不会就······

 参考代码:

同时还要注意细节,每行最后一个数字后面没有空格。

#include<iostream>
#include<algorithm>
using namespace std;
int a[110][110];
int main()
{int m,n;cin>>m>>n;for(int i=0;i<m;i++){for(int j=0;j<n;j++){cin>>a[i][j];}}for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(j<m-1)cout<<a[j][i]<<" ";if(j==m-1)cout<<a[j][i];}cout<<endl;}return 0;
}

或者:

#include<stdio.h>
int main()
{int m,n,i,j;scanf("%d %d",&m,&n);int a[110][110],a1[110][110];for(i=0;i<m;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);}}for(i=0;i<n;i++){for(j=0;j<m;j++){a1[i][j]=a[j][i];}}for(i=0;i<n;i++){for(j=0;j<m;j++){printf("%d",a1[i][j]);if(j<m-1){printf(" ");}}printf("\n");}return 0;
}

1804,仙法超大玉螺旋多连丸

思路解析:签到题,直接翻到最后面就可以看见题目要求。

给定一个数字n,从1到n随意排列的数列 ,要求你排好的数列的奇数下标的数字对1取模,偶数下标的数字对2取模的情况下,数列取模之后数列和的最小值为多少?

不难想到,最好的方法就是按照1,2,3,4,5·····的顺序排列,这样的话,无论n为何值,最后的结果最小值永远是0。

参考代码:

#include<iostream>
#include<algorithm>
using namespace std;
int n;
int main()
{cin>>n;cout<<"0"<<endl;return 0;
}

1805,仙法风遁大玉螺旋手里剑

思路解析:

 参考代码:

#include<iostream>
#include<algorithm>
using namespace std;
int check(int x)    //判断素数
{for(int i=2;i*i<=x;i++){if(x%i==0) return 0;}return 1;
}int main()
{int n;cin>>n;if(check(n-4)) {cout<<"2 "<<"2 "<<n-4;return 0;}     //第一种情况for(int i=3;i<n;i++)    //第二种情况{if((i%2)!=0&&check(i))//优化,已知这个数为奇数,此处为判断第一个数{for(int j=i;j<n;j++){if((j%2)!=0&&check(j))//优化,已知这个数为奇数,此处为判断第二个数{if(check(n-i-j)) {cout<<i<<" "<<j<<" "<<n-i-j;return 0;//不用循环第三个数,优化。}}}}}
}

1806,仙法超尾兽玉螺旋手里剑

思路解析:将数字翻转即可,唯一需要注意的就是末尾为0和负数的情况需要特判一下。

参考代码:

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int n;  cin>>n;   //反转之前的数if(n<0) {cout<<"-";n=-n;}  //不管正负数,都转成正数方便操作。如果是负数,先输出一个"-"if(n%10==0) {n=n/10;}  //如果一个数的最后一位为0,去掉不看int sum=0;    //反转之后的数while(n!=0){int k=n%10;sum=sum*10+k;   //sum*10+k的意思是在原数sum的基础上拓展一个个位并存储kn=n/10;   //去掉一位}cout<<sum<<endl;return 0;
}

1807,仙法磁遁螺旋丸

思路解析:等我缓缓!!!这个思路太巧妙,等我随后补充解释!!!

参考代码:

#include<stdio.h>
int main() {int values[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};char symbols[][3] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};int num;scanf("%d",&num);char roman[16] ;for (int i = 0; i < 13; i++) {while (num >= values[i]) {num -= values[i];printf("%s",symbols[i]);}if (num == 0) {break;}}return 0;}

1808,仙法溶遁螺旋手里剑

思路解析:对数组中的每个数枚举其后的数字(两层for循环),如果后面有比他大的数字,那么答案就是他俩下标差值;若没有,那么答案就为0。

需要注意,我输出答案的最后一个值,必然为0,因为最后一个数字后面必然没有比他大的数字。

参考代码:

#include<stdio.h>
int main()
{int answer[100010];int x[100010];int n;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&answer[i]);}for(int i=0; i < n-1; i++){for(int j=i+1; j < n; j++){if(answer[j] > answer[i]){x[i] = j - i;break;   //一但找到符合条件的数,便会退出}if(j == n-1)  //意为枚举完后面的数字,没有发现符合的数字,那么就输出0{x[i] = 0;}}}x[n-1] = 0; //输出结果的最后一个必然是0,因为最后一个数后面必然没有比他大的数字for(int i=0;i<n;i++){printf("%d ",x[i]);}return 0;
} 

1809,仙法螺旋连丸

思路解析:总罚时就是我从比赛开始到做出来这道题目的时间,加上我错误的次数乘20,这就是我写出来一道题目的总时间。

分两种情况计算:第一种是我当天提交通过,第二种是我第二天提交通过。

另外输入时需要有冒号,注意输入格式!!!

参考代码:

#include <stdio.h>
int main()
{int h1,m1,h2,m2,x;int h=0,m=0;char a;scanf("%d:%d %c %d:%d %d",&h1,&m1,&a,&h2,&m2,&x);if(a=='D'){m=(h2-h1)*60;m=m+(m2-m1);m=m+x*20;printf("%d",m);}else{m=(24-h1)*60;m=m+(0-m1);m=m+h2*60+m2+x*20;printf("%d",m);}return 0;
}

1810,超漩涡螺旋丸

思路解析:题意不难理解,关键在于如何实现。

M代表中等尺寸,S代表小尺寸,L代表大尺寸,其次X字母越多,S尺寸越小;X字母越多,L尺寸越大。

参考代码:

szw写的这个通过给两个尺寸比较返回数值,来判断大小。

#include<iostream>
#include<algorithm>
using namespace std;
int check(string v){if(v=="M")return 0;int l=v.size();if(v[l-1]=='L')  return l;else return -l;
}
int main()
{int T;cin>>T;while(T--){string a,b;cin>>a>>b;int u=check(a);int v=check(b);if(u==v)  cout<<"="<<endl;else if (u>v)  cout<<">"<<endl;else  cout<<"<"<<endl;}
}

gmf写的代码,更容易理解,列出来了所有的情况

#include<iostream>
#include<algorithm>
using namespace std;
string a;
string b;
int main()
{int t;cin>>t;while(t--){string a;string b;cin>>a;cin>>b;if(a[a.size()-1]=='L')//如果输入的衣服号码a包含了 'L',那么就去判断输入的号码b的情况 {if(b[b.size()-1]=='L'&&b.size()!=a.size()) a.size()>b.size()?cout<<">"<<endl:cout<<"<"<<endl;/*如果b也包含'L',那么就去比较X的数量*/ if(b[b.size()-1]=='L'&&b.size()==a.size()) cout<<"="<<endl;if(b[b.size()-1]!='L') cout<<">"<<endl;//如果b不包含'L',那么a的号码一定大 }if(a[a.size()-1]=='M')//如果是包含'M' ,同样是与b比较,但是'M'号码前面不加X,所以只判断是否包含L、S、M {if(b[b.size()-1]=='L') cout<<"<"<<endl;if(b[b.size()-1]=='M') cout<<"="<<endl;if(b[b.size()-1]=='S') cout<<">"<<endl;}if(a[a.size()-1]=='S')//如果包含的是'S' ,同'L',判断相同,但是要注意X越多,号码越小 {if(b[b.size()-1]=='S'&&b.size()!=a.size()) a.size()>b.size()?cout<<"<"<<endl:cout<<">"<<endl;if(b[b.size()-1]=='S'&&b.size()==a.size()) cout<<"="<<endl;if(b[b.size()-1]!='S') cout<<"<"<<endl;}}return 0;
}

以上就是关于此次的题解,以上代码仅供参考,答案不唯一,切勿照搬照抄!!!

2022JK工作室第二次招新赛题解相关推荐

  1. 2022JK工作室第一次招新赛题解

    1700,生活不易,szw卖艺 思路解析:如题意所示,从1开始奇数染红色,偶数染绿色,红绿交错出现:是否存在一个区间,使得红色格子数为r,绿色格子数为g. 那么,我们可以发现,在任意一个区间里面,红色 ...

  2. C. 啊对对对 (南阳理工oj—21第二次招新赛)

    解法 找到最长的公共前后缀以后,我们可以先输出t,然后t中的最长公共前后缀无需再输出(重复),只输出不重复的部分即可. 比如 aba公共前后缀为a ,不重复的部分为ba,所以你只需要先输出t(aba) ...

  3. E. 数好多好多猴(南阳理工oj—21新生第二场招新赛)

    u1s1:数猴子,数猴子,最后我变成了猴子,www. 这个题是一道思维题,接下来我以最简单理解的方式解答这个题! 我们的目标是确定最初猴子的个数  有几种可能 所以我们用mx(最大个数)与mn(最小个 ...

  4. nyist 第二次招新赛 I 董学姐与朱学姐的爱恨情仇

    董学姐与朱学姐的爱恨情仇. - NYOJ  思路:  首先我们可以假定朱学姐一定是赢的,那么我们要保证朱学姐一定是第一个拿到最后一堆的,那么我们就考虑在前n个石头之后朱学姐能不能继续保持先手. 首先, ...

  5. NYIST(计科ACMTC)第三次招新赛题解

    A题 原文, 原比赛B题 牛客练习赛104[出题人题解] - 知乎 直接输出 输入的数 就可以了 B题 C题 找到分别处理"无留陀的化身"坐标轴的x轴和y轴, 组合成无留陀的坐标, ...

  6. F. 张胖胖玩多米诺骨牌 (南阳理工oj—21新生第二场招新赛)

    目标:邻两块骨牌距离的最大值最小 首先这是一道二分题(如果你可以看出来,那你就已经成功一半了) 我以上面的图,来讲解一下: 这个算是贪心思想了 X是二分出来的最大值,如果距离大于X,我就插一个(也可能 ...

  7. QG工作室2010年招新通知(附报名表)

    点击下载 QG工作室2010年招新通知.doc QG工作室2010年招新报名表.doc QG工作室2010年招新通知 计算机学院09级各班: QG工作室于2005年11月5日在计算机学院智能与软计算研 ...

  8. QG工作室2011年招新通知(附报名表)

    点击下载 QG工作室2011年招新报名表.doc                          QG工作室开始招新了! QG工作室于2005年11月5日在计算机学院智能所谢光强老师和李杨老师的指导 ...

  9. 2022 弱口令安全实验室招新赛-靶机挑战记录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.ubuntu 代码执行getshell 获取webshell 二.server 2008r2 EW 流量代理 ms ...

  10. [青少年CTF]弱口令实验室招新赛部分WriteUp

    Web 0x01 开胃菜 <?php highlight_file(__FILE__); if(strlen($_GET[1]&&$_GET[1]<=5)){echo st ...

最新文章

  1. php经典操作,php数组的经典操作(遍历数组、基本操作)实例
  2. 25元、264KB内存的微处理器,树莓派官方出品,自带快速休眠模式
  3. Win10如何显示系统托盘所有图标
  4. Android 开机自动运行和添加删除桌面快捷方式
  5. Make Even(800)
  6. Moss/Sharepoint 2010 Form认证(FBA)
  7. ubuntu 安装kde桌面_在Ubuntu 20.04系统上安装KDE Plasma Desktop的方法
  8. 如何优雅地测量一只猫的体积?
  9. webservice采用ssl/https传输
  10. AIX 常用命令汇总(二)
  11. VSCode配置ESLint
  12. shell编程之awk
  13. 整理了一份嵌入式相关开源项目、库、资料
  14. Unity Gyro之使用陀螺仪实现简单VR全景环视效果
  15. 《舍不得看完的中国史》读书笔记
  16. oracle 字符串中数字转中文大写,金额钱数转中文大写
  17. 东航电商前端技术周刊第一期20180601
  18. 【计算机毕业设计】029网上购物商城系统
  19. 如何备份 WordPress 数据库
  20. 简述模板引擎、常见模板引擎以及Thymeleaf常用指令

热门文章

  1. 【XR】AR开发技术栈概述
  2. 如何在CSS中解决长英文单词的页面显示问题?CSS3
  3. Spring Boot 通过 Mvc 扩展方便进行货币单位转换
  4. Flutter技术简介
  5. 无法修改linux密码Authentication token manipulation error 问题解决
  6. 58欧氏空间05——对称变换和对称矩阵、实对称矩阵的标准形、正交相似
  7. 人在囧途之tar命令
  8. OneZero第四次站立会议(2016.3.24)
  9. 多商家父订单子订单_70多份订单被退回,商家查看信息傻眼了,美团:封店180天...
  10. ssms连接mysql_SQL Server安装以及使用SSMS连接数据库