
OI 入门习题精选
江苏省盐城中学校内OJ题目与题解
以太以北
这个作者很懒,什么都没留下…
展开
-
Hello!YZOJ!(YZOJ-1000)
【问题描述】经过超 200h 废寝忘食的连续奋战,YZOJ 3.0 终于在2021年3月28号正式和大家见面了,在此感谢cc、ww、zhb在YZOJ的二次开发过程中给予的帮助与支持。这是你第一次与 YZOJ 得见面,请你输出如下两行字符串(任何一个字符都不能错漏哦):Hello!YZOJ!【输出格式】两行字符串【样例输出】Hello!YZOJ!【参考程序】#include<bits/stdc++.h>using namespace std; int main(){原创 2021-10-09 09:59:05 · 492 阅读 · 0 评论 -
A+B(YZOJ-1001)
【问题描述】输入两个整数a b,输出它们的和。【输入格式】两个整数。【输出格式】一个整数。【样例输入】20 30【样例输出】50【参考程序】#include<bits/stdc++.h>using namespace std;int main(){ int a,b; cin>>a>>b; cout<<a+b; return 0;}...原创 2021-10-09 09:54:54 · 420 阅读 · 0 评论 -
输出第二个整数(YZOJ-1002)
【问题描述】输入三个整数,把第二个输入的整数输出。【输入格式】只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。【输出格式】只有一行,一个整数,即输入的第二个整数。【样例输入】123 456 789【样例输出】456【参考程序】#include<bits/stdc++.h>using namespace std;int main(){ int a,b,c; cin>>a>>b>>c; c原创 2021-10-09 09:56:52 · 344 阅读 · 0 评论 -
算术运算符(YZOJ-1003)
【问题描述】输入两个整数a、b(a≥b)a、b(a \geq b)a、b(a≥b),输出两整数+、-、*、/、%的结果【输入格式】两个整数a、b(a≥b)a、b(a \geq b)a、b(a≥b)【输出格式】五个数,用空格分隔【样例输入】9 2【样例输出】11 7 18 4.5 1【参考程序】#include<bits/stdc++.h>using namespace std;int main(){ int a,b; cin>>a>原创 2021-10-06 11:44:12 · 293 阅读 · 15 评论 -
带余除法(YZOJ-1004)
【问题描述】给定被除数和除数,求整数商及余数。【输入格式】一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。【输出格式】一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。【样例输入】10 3【样例输出】3 1【参考程序】#include<bits/stdc++.h>using namespace std;int main(){ int a,b; cin>>a>>b; cout<&l原创 2021-10-09 09:53:29 · 417 阅读 · 0 评论 -
sizeof(YZOJ-1005)
【问题描述】分别定义int,double,char类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。【输出格式】一行,三个整数,分别是三个变量的存储空间大小,之间用一个空格隔开。【提示】sizeof(数据类型)或者sizeof(变量)可输出其所占用内存大小。【参考程序】#include<bits/stdc++.h>using namespace std; int main(){ cout<<sizeof(int)<<" "<&原创 2021-10-09 09:50:53 · 383 阅读 · 0 评论 -
打印ASCII码(YZOJ-1006)
【问题描述】输入一个字符,输出其ASCII码。【输入格式】一个字符【输出格式】一个十进制整数,即该字符的ASCII码。【样例输入】A【样例输出】65【提示】本题cin读入即可满分,但请注意字符空格“ ”无法用cin读入,需使用getchar或scanf来读入【参考程序】#include<bits/stdc++.h>using namespace std; int main(){ char a; cin>>a; cout<原创 2021-10-09 09:49:00 · 531 阅读 · 0 评论 -
舍去小数(YZOJ-1007)
【问题描述】输入一个单精度浮点数,将其向零舍入到整数。【输入格式】一个单精度浮点数。【输出格式】一个整数,即向零舍入到整数的结果。【样例输入】2.3【样例输出】2【提示】说明:向零舍入的含义是,正数向下舍入,负数向上舍入。(1)可以使用强制类型转换来实现。(2)可以通过变量赋值来实现。【参考程序】(1)#include<bits/stdc++.h>using namespace std; int main(){ double a; cin原创 2021-10-09 09:46:38 · 302 阅读 · 0 评论 -
输出保留3位小数(YZOJ-1008)
【问题描述】读入一个双精度浮点数,保留3位小数,输出这个浮点数。【输入格式】只有一行,一个双精度浮点数。【输出格式】也只有一行,保留3位小数的浮点数。【样例输入】3.1415926535798932【样例输出】3.142【提示】cout语句中以"fixed<<setprecision(n)"控制精确到小数点后n位例如cout<<fixed<<setprecision(2)<<10.0/3.0<<endl;输出结果为3.3原创 2021-10-09 09:40:00 · 3216 阅读 · 0 评论 -
数字反转(YZOJ-1009)
【问题描述】输入一个四位整数,例如1234,要求把这个数字翻转过来,变成4321并输出。【输入格式】一个四位整数【输出格式】一个四位整数【样例输入】1234【样例输出】4321【提示】通过%10和/10即可将一个数的每一位依次取出。【参考程序】#include<bits/stdc++.h>using namespace std; int main(){ int a; cin>>a; int b=a%10; int c原创 2021-10-09 17:13:18 · 360 阅读 · 0 评论 -
字符菱形(YZOJ-1010)
【问题描述】给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。【输入格式】输入只有一行, 包含一个字符。【输出格式】该字符构成的菱形。【样例输入】*【样例输出】 * ******** *** *【方法1】//顺序结构#include<bits/stdc++.h>using namespace std;int main(){ char a; cin>>a; cout<<" "<<a&原创 2021-10-09 09:13:05 · 2004 阅读 · 0 评论 -
字母转换(YZOJ-1011)
【问题描述】输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。【样例输入】q【样例输出】Q【参考程序1】#include<bits/stdc++.h>using namespace std;int main(){ char a; cin>>a; a=a-32; cout<<a<<endl; return 0;}【参考程序2】#include<bits/st原创 2021-10-09 00:16:19 · 706 阅读 · 0 评论 -
四舍五入(YZOJ-1012)
【问题描述】输入一个单精度浮点数,将其四舍五入到整数。【输入格式】一个单精度浮点数。【输出格式】一个整数,即四舍五入的结果。【样例输入】2.3【样例输出】2【提示】本题有两种方法:1、数学方法:用这个数加上0.5以后向下取整2、printf("%.0lf",a);【参考程序1】#include<bits/stdc++.h>using namespace std;int main(){ double a; cin>>a; d原创 2021-10-08 09:32:50 · 581 阅读 · 0 评论 -
时间转换(YZOJ-1013)
【问题描述】输入秒数,输出时分秒【输入格式】一个整数【输出格式】输出格式"时:分:秒",":"为英文标点符号【样例输入】3756【样例输出】1:2:36【参考程序】#include<bits/stdc++.h>using namespace std;int main(){ int n,s,f,m; cin>>n; s=n/3600; f=(n%3600)/60; m=n%60; cout<<s&原创 2021-10-09 10:15:05 · 307 阅读 · 0 评论 -
三角形面积(YZOJ-1014)
【问题描述】一个三角形的三边长分别是 a、b、ca、b、ca、b、c,那么它的面积为 p(p−a)(p−b)(p−c)\sqrt{p(p-a)(p-b)(p-c)}p(p−a)(p−b)(p−c),其中 p=12(a+b+c)p=\dfrac{1}{2}(a+b+c)p=21(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到1位小数。保证能够构成三角形,0≤a,b,c≤10000 \leq a,b,c \leq 10000≤a,b,c≤1000。【样例输入】3 4 5【样例输出】原创 2021-10-09 17:25:30 · 336 阅读 · 0 评论 -
温度转换(YZOJ-1015)
【问题描述】输入摄氏温度,输出华氏温度公式:f=95∗c+32f=\dfrac{9}{5}*c+32f=59∗c+32【输入格式】一个浮点数【输出格式】一个浮点数,精确到小数点后一位【样例输入】36.5【样例输出】97.7【参考程序】#include<bits/stdc++.h>using namespace std;int main(){ double f,c; cin>>c; f=9/5.0*c+32; cout&原创 2021-10-08 09:20:51 · 343 阅读 · 0 评论 -
计算球的体积(YZOJ-1016)
【问题描述】对于半径为r的球,其体积的计算公式为V=4/3*πr3,这里取π= 3.14。现给定r,求V。【输入格式】输入为一个不超过100的非负实数,即球半径,类型为double。【输出格式】输出一个实数,即球的体积,保留到小数点后2位。【样例输入】4【样例输出】267.95【参考程序】#include<bits/stdc++.h>using namespace std; int main(){ double r; cin>>r;原创 2021-10-08 09:19:04 · 881 阅读 · 0 评论 -
交换AB(YZOJ-1017)
【问题描述】输入两个数A、B,交换A、B的值并输出【样例输入】1 2【样例输出】2 1【参考程序】#include<bits/stdc++.h>using namespace std;int main(){ double a,b; cin>>a>>b; double t=a,a=b,b=t; cout<<a<<" "<<b<<endl; return 0;} 【原创 2021-10-08 09:17:48 · 425 阅读 · 0 评论 -
数字反转(YZOJ-1018)
【问题描述】输入一个不小于100且小于1000,同时包括小数点后一位的一个浮点数,例如123.4,要求把这个数字翻转过来,转换成4.321并输出。【输入格式】一行一个浮点数【输出格式】一行一个浮点数【样例输入】123.4【样例输出】4.321【提示】计算机进行浮点运算时经常会存在误差:如1.0/3的结果为0.33333333333333333思考:如何解决误差问题?1、四舍五入2、数值作字符处理【参考程序】#include<bits/stdc++.h>us原创 2021-10-08 09:14:57 · 1128 阅读 · 0 评论 -
小鱼的游泳时间(YZOJ-1019)
【问题描述】伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按24小时制计算),它发现自己从a时b分一直游泳到当天的c时d分,请你帮小鱼计算一下,它这天一共游了多少时间呢?小鱼游的好辛苦呀,你可不要算错了哦。【输入格式】一行内输入 4 个整数,分别表示 a, b, c, d。【输出格式】一行内输出 2 个整数 e 和 f,用空格间隔,依次表示小鱼这天一共游了多少小时多少分钟。其中表示原创 2021-10-08 09:12:39 · 247 阅读 · 0 评论 -
圆的周长面积(YZOJ-1020)
【问题描述】输入半径,请输出圆的周长、面积(输出保留两位小数)。【输入格式】一个浮点数【输出格式】第一行为周长第二行为面积【样例输入】1【样例输出】6.283.14【提示】符号常量PI的定义:const double PI = acos(-1.0);为了区别于变量,符号常量一般用大写表示,格式如下:const 数据类型 符号常量名=值或表达式;保留两位小数:cout<<fixed<<setprecision(2)<<ans<&l原创 2021-10-08 09:08:35 · 551 阅读 · 0 评论 -
地球人口承载力估计(YZOJ-1021)
【问题描述】假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供 xxx 亿人生活 aaa 年,或供 yyy 亿人生活 bbb 年。为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?【输入格式】一行,包括四个正整数 x、a、y、bx、a、y、bx、a、y、b,两个整数之间用单个空格隔开。x>y,a<b,ax<byx>y,a<b,ax<byx>y,a<b,ax<by,各整数均不大于10000。【输出格式】一原创 2021-10-08 09:07:04 · 898 阅读 · 0 评论 -
计算浮点数相除的余(YZOJ-1023)
【问题描述】计算两个双精度浮点数a和b的相除的余数,a和b都是双精度浮点数。这里余数r的定义是:a=k∗b+ra=k*b+ra=k∗b+r,其中k是整数,0≤r<b0 \leq r < b0≤r<b。【输入格式】输入仅一行,包括两个双精度浮点数a和b。【输出格式】输出也仅一行,a/b的余数。【样例输入】73.263 0.9973【样例输出】0.4601【参考程序】#include <stdio.h>int main(){ double a,原创 2021-10-08 09:02:18 · 570 阅读 · 0 评论 -
放学(YZOJ-1029)
【问题描述】W和w经常一起放学回家,为了方便简化交流,两人约定如下:如果两人都说 111,则表示可以放学回家了如其中任意人说 000 或都为 000,则表示原地待命【输入格式】两行两个整数,分别为0或1【输出格式】一行字符串如可以放学输出 gogogogogogogogogo如原地待命则输出 stand bystand\space bystand by【样例输入】10【样例输出】stand by【参考程序】a=int(input())b=int(in原创 2021-10-09 17:27:47 · 223 阅读 · 2 评论 -
判断数正负(YZOJ-1030)
【问题描述】给定一个整数N,判断其正负。【输入格式】一个整数 NNN (KaTeX parse error: Double superscript at position 6: -10^9^̲ <= N <= 10^9^)【输出格式】如果N > 0, 输出positive;如果N = 0, 输出zero;如果N < 0, 输出negative【样例输入】1【样例输出】positive【参考程序】#include<bits/stdc++.h>/原创 2021-10-08 09:00:07 · 767 阅读 · 1 评论 -
输出绝对值(YZOJ-1031)
【问题描述】输入一个浮点数,输出这个浮点数的绝对值。【输入格式】输入一个浮点数,其绝对值不超过10000。【输出格式】输出这个浮点数的绝对值,保留到小数点后两位。【样例输入】-3.14【样例输出】3.14【参考程序】#include<bits/stdc++.h>using namespace std;int main(){ double a; cin>>a; printf("%.2lf",abs(a)); return原创 2021-10-08 08:57:44 · 1801 阅读 · 0 评论 -
【YZOJ】题解目录
【YZOJ】题解目录原创 2021-10-24 23:11:33 · 1291 阅读 · 2 评论 -
奇偶数判断(YZOJ-1032)
【问题描述】给定一个整数,判断该数是奇数还是偶数。【输入格式】输入仅一行,一个大于零的正整数n。【输出格式】输出仅一行,如果n是奇数,输出odd;如果n是偶数,输出even。【样例输入】5【样例输出】odd【参考程序】#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; if(n%2==0) cout<<"even"原创 2021-10-09 10:49:17 · 1100 阅读 · 0 评论 -
奇偶ASCII值判断(YZOJ-1033)
【问题描述】任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出NO例如,字符A的ASCII值是65,则输出YES,若输入字符B(ASCII值是66),则输出NO【输入格式】输入一个字符【输出格式】如果其ASCII值为奇数,则输出YES,否则,输出NO【样例输入】A【样例输出】YES【提示】请尝试输入空格字符,查看结果是否为NO,思考原因错误原因:cin无法读入空格,须使用scanf或者getchar即a=getchar();或scanf("%c",&原创 2021-10-08 08:56:10 · 1368 阅读 · 1 评论 -
整数大小比较(YZOJ-1034)
【问题描述】输入两个整数,比较它们的大小。【输入格式】一行,包含两个整数x和y,中间用单个空格隔开。0≤x<0 \leq x <0≤x< 232, -231 ≤y\leq y≤y < 231。【输出格式】若x > y,输出 > ;若x = y,输出 = ;若x < y,输出 < ;【样例输入】1000 100【样例输出】>【参考程序】在这里插入代码片...原创 2021-10-08 08:43:23 · 766 阅读 · 0 评论 -
判断是否为两位数(YZOJ-1035)
【问题描述】判断一个正整数是否是两位数(即大于等于10且小于等于99)。【输入格式】一个正整数,不超过int。【输出格式】一行。若该正整数是两位数,输出1,否则输出0。【样例输入】54【样例输出】1【参考程序】#include<iostream>using namespace std;int main(){ int a; cin>>a; if (a>9&&a<100) cout<原创 2021-10-08 08:35:40 · 976 阅读 · 0 评论 -
收集瓶盖赢大奖(YZOJ-1036)
【问题描述】某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有10个印有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。现分别给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。【输入格式】一行,包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空格隔开。【输出格式】一行。若可以兑换大奖,输出1,否则输出0。【样例输入】11 19【样例输出】1【参考程序】#include <iostream>using namespa原创 2021-10-08 08:34:06 · 553 阅读 · 0 评论 -
判断一个数能否同时被3和5整除(YZOJ-1037)
【问题描述】判断一个数n 能否同时被3和5整除【输入格式】输入一行,包含一个整数n。( -1,000,000 < n < 1,000,000)【输出格式】输出一行,如果能同时被3和5整除输出YES,否则输出NO【样例输入】15【样例输出】YES【参考程序】#include<iostream>using namespace std;int main(){ int n; cin>>n; if(n%3==0&&原创 2021-10-08 08:32:42 · 1099 阅读 · 0 评论 -
判断能否被3,5,7整除(YZOJ-1038)
【问题描述】给定一个整数,判断它能否被3,5,7整除,并输出以下信息:1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格);2、只能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5或者 3 7或者5 7,中间用空格分隔);3、只能被其中一个数整除(输出这个除数);4、不能被任何数整除,输出小写字符‘n’,不包括单引号。【输入格式】输入一行,包括一个整数。【输出格式】输出一行,按照描述要求给出整数被3,5,7整除的情况。【样例输入】105【样例输出】3原创 2021-10-08 08:28:12 · 2269 阅读 · 0 评论 -
有一门课不及格的学生(YZOJ-1039)
【问题描述】给出一名学生的语文和数学成绩,判断他是否恰好有一门课不及格(成绩小于60分)。【输入格式】一行,包含两个在0到100之间的整数,分别是该生的语文成绩和数学成绩。【输出格式】若该生恰好有一门课不及格,输出1;否则输出0。【样例输入】50 80【样例输出】1【参考程序】#include<iostream>using namespace std;int main(){ int a,b; cin>>a>>b; co原创 2021-10-08 08:26:04 · 940 阅读 · 0 评论 -
晶晶赴约(YZOJ-1040)
【问题描述】晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1、3、5有课必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出YES;如果不能则输出NO。【输入格式】输入有一行,贝贝邀请晶晶去看展览的日期,用数字1到7表示从星期一到星期日。【输出格式】输出有一行,如果晶晶可以接受贝贝的邀请,输出YES,否则,输出NO。【样例输入】2【样例输出】YES【参考程序】#include<iostream>using namespace std;int main(){原创 2021-10-10 22:21:13 · 1513 阅读 · 0 评论 -
骑车与走路(YZOJ-1041)
【问题描述】在北大校园里,没有自行车,上课办事会很不方便.但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间.假设找到自行车,开锁并车上自行车的时间为 272727 秒;停车锁车的时间为 232323 秒;步行每秒行走 1.21.21.2 米,骑车每秒行走 3.03.03.0 米。请判断走不同的距离去办事,是骑车快还是走路快。【输入格式】输入一行,包含一个整数,表示一次办事要行走的距离,单位为米。【输出格式】输出一行,如果骑车快,输出一行"Bike";如果原创 2021-10-08 08:24:18 · 574 阅读 · 0 评论 -
计算邮资(YZOJ-1042)
【问题描述】根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。【输入格式】输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。【输出格式】输出一行,包含一个整数,表示邮费。【样例输入】1200 y【样例输出】17【参考程序】#includ原创 2021-10-08 00:21:14 · 804 阅读 · 1 评论 -
最大数输出(YZOJ-1043)
【问题描述】输入三个整数,输出最大的数。【输入格式】输入为一行,包含三个整数,数与数之间以一个空格分开。【输出格式】输出一行,包含一个整数,即最大的整数。【样例输入】10 20 56【样例输出】56【参考程序】#include<bits/stdc++.h>using namespace std;int main(){ int a,b,c; cin>>a>>b>>c; if(a>b) s原创 2021-10-07 19:21:50 · 591 阅读 · 1 评论 -
三角形面积(YZOJ-1044)
【问题描述】给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形。如果能构成三角形,则输出面积,精确到小数点后1位 ,如不能构成输出“NO”。【输入格式】输入共一行,包含三个正整数,分别表示三条线段的长度,数与数之间以一个空格分开。【输出格式】如果能构成三角形,则输出面积,精确到小数点后1位 ,如不能构成输出“NO”。【样例输入】3 4 5【样例输出】6.0【样例解释】面积计算可使用海伦公式:已知三角形边长a、b、ca、b、ca、b、c,半周长 p=(a+b原创 2021-10-07 19:20:25 · 405 阅读 · 1 评论