> 文章列表 > 洛谷题解【入门一】顺序结构

洛谷题解【入门一】顺序结构

洛谷题解【入门一】顺序结构

目录

B2002 Hello,World!

题目描述

输入格式

输出格式

输入输出样例

B2025 输出字符菱形

题目描述

输入格式

输出格式

输入输出样例

P1000 超级玛丽游戏

题目背景

题目描述

输入格式

输出格式

输入输出样例

P1001 A+B Problem

B2005 字符三角形

题目描述

输入格式

输出格式

输入输出样例

说明/提示

P5703 【深基2.例5】苹果采购

题目描述

输入格式

输出格式

输入输出样例

题目描述

输入格式

输出格式

输入输出样例

P5705 【深基2.例7】数字反转

题目描述

输入格式

输出格式

输入输出样例

P5706 【深基2.例8】再分肥宅水

题目描述

输入格式

输出格式

输入输出样例

说明/提示

P5708 【深基2.习2】三角形面积

题目描述

输入格式

输出格式

输入输出样例

说明/提示

P5707 【深基2.例12】上学迟到

题目描述

输入格式

输出格式

输入输出样例

说明/提示

B2029 大象喝水

题目描述

输入格式

输出格式

输入输出样例

说明/提示

数据规模与约定

题目描述

输入格式

输出格式

输入输出样例

说明/提示

题目描述

输入格式

输出格式

输入输出样例

说明/提示

P3954 [NOIP2017 普及组] 成绩

题目背景

题目描述

输入格式

输出格式

输入输出样例

说明/提示

输入输出样例 1 说明

输入输出样例 2 说明

数据说明


B2002 Hello,World!

题目描述

编写一个能够输出 Hello,World! 的程序。

提示:

  • 使用英文标点符号;
  • Hello,World! 逗号后面没有空格。
  • H 和 W 为大写字母。

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

Hello,World!

源代码:

#include<iostream>
using namespace std;
int main(){cout<<"Hello,World!"<<endl; return 0;
}

B2025 输出字符菱形

题目描述

用 * 构造一个对角线长 55 个字符,倾斜放置的菱形。

输入格式

没有输入要求。

输出格式

如样例所示。用 * 构成的菱形。

输入输出样例

输入 #1


输出 #1

  
*

源代码:

#include<iostream>
using namespace std;
int main(){for(int i=1;i<=3;i++){for(int j=i;j<3;j++)	cout<<" ";for(int j=1;j<=i*2-1;j++){cout<<"*";}cout<<endl;}for(int i=2;i>=1;i--){for(int j=i;j<3;j++)	cout<<" ";for(int j=1;j<=i*2-1;j++){cout<<"*";}cout<<endl;}return 0;
}

P1000 超级玛丽游戏

题目背景

本题是洛谷的试机题目,可以帮助了解洛谷的使用。

建议完成本题目后继续尝试 P1001、P1008。

另外强烈推荐新用户必读贴

题目描述

超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。

                #....#.#.......##...........                          ...........               #...#          #...*#                 #.#.#          #.#.##*             #.#.#          #.#.#...#*..*....          #...#          #...#....##.....                       ....    *....#        #        
##
#...#......#.##...#......#.##...#......#.##------------------#
#------------------#
#..#....#....##..#....#....##..#....#....
    #----------#
#.....#......##.....#......##.....#......#    #----------#
    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
    

输入格式

输出格式

如描述

输入输出样例

源代码:

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

P1001 A+B Problem

题目背景
强烈推荐新用户必读帖。

不熟悉算法竞赛的选手请看这里:

算法竞赛中要求的输出格式中,不能有多余的内容,这也包括了“请输入整数 \\bm aa 和 \\bm bb” 这一类的提示用户输入信息的内容。若包含了这些内容,将会被认为是 Wrong Answer,即洛谷上的 WA。在对比代码输出和标准输出时,系统将忽略每一行结尾的空格,以及最后一行之后多余的换行符。

若因此类问题出现本机(看起来)AC,提交 WA 的现象,请勿认为是洛谷评测机出了问题,而是你的代码中可能存在多余的输出信息。用户可以参考在题目末尾提供的代码。

另外请善用应用中的在线 IDE 功能,以避免不同平台的评测中所产生的一些问题。

还有一点很重要的是,请不要在对应的题目讨论区中发布自己的题解,请发布到题解区域中,否则将处以删除或禁言的处罚。若发现无法提交题解则表明本题题解数量过多,仍不应发布讨论。

题目描述
输入两个整数 a, ba,b,输出它们的和(|a|,|b| \\le {10}^9∣a∣,∣b∣≤10 
9
 )。

注意

Pascal 使用 integer 会爆掉哦!
有负数哦!
C/C++ 的 main 函数必须是 int 类型,而且 C 最后要 return 0。这不仅对洛谷其他题目有效,而且也是 NOIP/CSP/NOI 比赛的要求!
好吧,同志们,我们就从这一题开始,向着大牛的路进发。

任何一个伟大的思想,都有一个微不足道的开始。

输入格式
两个以空格分开的整数。

输出格式
一个整数。

输入输出样例
输入 #1
20 30
输出 #1
50

 源代码:

#include <iostream>
using namespace std;
int main(){int a,b;cin>>a>>b;cout<<a+b<<endl;return 0;
}

B2005 字符三角形

题目描述

给定一个字符,用它构造一个底边长 55 个字符,高 33 个字符的等腰字符三角形。

输入格式

输入只有一行,包含一个字符。

输出格式

该字符构成的等腰三角形,底边长 55 个字符,高 33 个字符。

输入输出样例

输入 #1

*

输出 #1

  
*

说明/提示

对于 100 \\%100% 的数据,输入的字符是 ASCII 中的可见字符。

 源代码:

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cstdlib>
using namespace std;
int main(){char a;cin>>a;cout<<"  "<<a<<endl;cout<<" "<<a<<a<<a<<endl;cout<<a<<a<<a<<a<<a<<endl;return 0;
}

P5703 【深基2.例5】苹果采购

题目描述

现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?

输入格式

输入两个不超过 10^9109 正整数,分别表示每人分到的数量和同学的人数。

输出格式

一个整数,表示答案。保证输入和答案都在 int 范围内的非负整数。

输入输出样例

输入 #1

5 3

输出 #1

15

源代码:

#include<iostream>
using namespace std;
int main(){int a,b;cin>>a>>b;cout<<a*b<<endl;return 0;
}

P5704 【深基2.例6】字母转换

题目描述

输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。

输入格式

输出格式

输入输出样例

输入 #1

q

输出 #1

Q

源代码:

#include<iostream>
using namespace std;
int main(){char a;cin>>a;cout<<char(a-32);return 0;
}

P5705 【深基2.例7】数字反转

题目描述

输入一个不小于 100100 且小于 10001000,同时包括小数点后一位的一个浮点数,例如 123.4123.4 ,要求把这个数字翻转过来,变成 4.3214.321 并输出。

输入格式

一行一个浮点数

输出格式

一行一个浮点数

输入输出样例

输入 #1

123.4

输出 #1

4.321

源代码:

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
int main(){string a;cin>>a;for(int i=a.size()-1;i>=0;i--){cout<<a[i];}return 0;
}

P5706 【深基2.例8】再分肥宅水

题目描述

现在有 tt 毫升肥宅快乐水,要均分给 nn 名同学。每名同学需要 22 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 33 位),以及一共需要多少个杯子。

输入格式

输入一个实数 tt 和一个正整数 nn,使用空格隔开。

输出格式

输出两行。

第一行输出一个三位小数,表示可以获得多少毫升饮料。第二行输出一个正整数,表示一共需要多少个杯子。

输入输出样例

输入 #1

500.0 3

输出 #1

166.667
6

说明/提示

对于所有数据,0\\leq t\\leq 100000≤t≤10000 且小数点后不超过 33 位,1\\leq n\\leq 10001≤n≤1000。

源代码:

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
int main(){double a;int b;cin>>a>>b;printf("%0.3lf\\n",a/b);cout<<b*2;return 0;
}

P5708 【深基2.习2】三角形面积

题目描述

一个三角形的三边长分别是 aa、bb、cc,那么它的面积为 \\sqrt{p(p-a)(p-b)(p-c)}p(p−a)(p−b)(p−c)​,其中 p=\\frac{1}{2}(a+b+c)p=21​(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 11 位小数。

输入格式

第一行输入三个实数 a,b,ca,b,c,以空格隔开。

输出格式

输出一个实数,表示三角形面积。精确到小数点后 11 位。

输入输出样例

输入 #1

3 4 5

输出 #1

6.0

说明/提示

数据保证能构成三角形,0\\leq a,b,c\\leq 10000≤a,b,c≤1000,每个边长输入时不超过 22 位小数。

 源代码:

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
int main(){double a,b,c;cin>>a>>b>>c;double p=0.5*(a+b+c);double s=sqrt(p*(p-a)*(p-b)*(p-c));printf("%0.1lf",s);return 0;
}

P5707 【深基2.例12】上学迟到

题目描述

学校和 yyy 的家之间的距离为 ss 米,而 yyy 以 vv 米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费 1010 分钟的时间进行垃圾分类。

学校要求必须在上午 \\textrm{8:00}8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。

输入格式

一行两个正整数 s,vs,v,分别代表路程和速度。

输出格式

输出一个 2424 小时制下的时间,代表 yyy 最晚的出发时间。

输出格式为 \\texttt{HH:MM}HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 00。

输入输出样例

输入 #1

100 99

输出 #1

07:48

说明/提示

对于 100\\%100% 的数据,1 \\le s,v \\le 10^41≤s,v≤104。

 源代码:

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{int a,b,c;cin>>a>>b;if(a%b==0)	c=a/b;else if(a%b!=0)	c=a/b+1;int d=c+10;//d为花的时间int e=d%60;int f=(d-e)/60;if(d<=480){int g=7-f,h=60-e;if(h==60){h=0;g++;}cout<<0<<g<<":";if(h<10){cout<<0;}cout<<h;}else{int g=(f-8)%24;int z=23-g,h=60-e;if(h==60){h=0;z++;}if(z<10){cout<<0;}cout<<z<<":";if(h<10){cout<<0;}cout<<h;}return 0;
}

B2029 大象喝水

题目描述

一只大象口渴了,要喝 2020 升水才能解渴,但现在只有一个深 hh 厘米,底面半径为 rr 厘米的小圆桶 (hh 和 rr 都是整数)。问大象至少要喝多少桶水才会解渴。

Update:数据更新,这里我们近似地取圆周率 \\pi = 3.14π=3.14。

输入格式

输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深 hh 和底面半径 rr,单位都是厘米。

输出格式

输出一行,包含一个整数,表示大象至少要喝水的桶数。

输入输出样例

输入 #1

23 11

输出 #1

3

说明/提示

数据规模与约定

对于全部的测试点,保证 1 \\leq h \\leq 5001≤h≤500,1 \\leq r \\leq 1001≤r≤100。

源代码:

#include<iostream>
using namespace std;
int main(){double pi=3.14;int h,r;cin>>h>>r;double v=pi*r*r*h;double sum=20000.00/v;if(int(sum)==sum||int(sum)+1==sum){cout<<sum<<endl;}else{cout<<int(sum)+1<<endl;}return 0;
}

 P1425 小鱼的游泳时间

题目描述

伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。

这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按 2424 小时制计算),它发现自己从 aa 时 bb 分一直游泳到当天的 cc 时 dd 分,请你帮小鱼计算一下,它这天一共游了多少时间呢?

小鱼游的好辛苦呀,你可不要算错了哦。

输入格式

一行内输入四个整数,以空格隔开,分别表示题目中的 a, b, c, da,b,c,d。

输出格式

一行内输出两个整数 ee 和 ff,用空格间隔,依次表示小鱼这天一共游了多少小时多少分钟。其中表示分钟的整数 ff 应该小于 6060。

输入输出样例

输入 #1

12 50 19 10

输出 #1

6 20

说明/提示

对于全部测试数据,0\\le a,c \\le 240≤a,c≤24,0\\le b,d \\le 600≤b,d≤60,且结束时间一定晚于开始时间。

源代码:

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
int main(){int a,b,c,d,e,f;cin>>a>>b>>c>>d;int g=(c*60+d)-(a*60+b);int h=g%60;int i=(g-h)/60;cout<<i<<" "<<h;return 0;
}

 P1421 小玉买文具

题目描述

班主任给小玉一个任务,到文具店里买尽量多的签字笔。已知一只签字笔的价格是 11 元 99 角,而班主任给小玉的钱是 aa 元 bb 角,小玉想知道,她最多能买多少只签字笔呢。

输入格式

输入只有一行两个整数,分别表示 aa 和 bb。

输出格式

输出一行一个整数,表示小玉最多能买多少只签字笔。

输入输出样例

输入 #1

10 3

输出 #1

5

说明/提示

数据规模与约定

对于全部的测试点,保证 0 \\leq a \\leq 10^40≤a≤104,0 \\leq b \\leq 90≤b≤9。

 源代码:

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
int main(){int a,b;cin>>a>>b;int c=a*10+b;cout<<c/19<<endl;return 0;
}

P3954 [NOIP2017 普及组] 成绩

题目背景

NOIP2017 普及组 T1

题目描述

牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是:

总成绩=作业成绩\\times 20\\%+×20%+小测成绩×30\\%+×30%+期末考试成绩\\times 50\\%×50%

牛牛想知道,这门课程自己最终能得到多少分。

输入格式

三个非负整数 A,B,CA,B,C,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是 100100 分。

输出格式

一个整数,即牛牛这门课程的总成绩,满分也是 100100 分。

输入输出样例

输入 #1

100 100 80 

输出 #1

90

输入 #2

60 90 80 

输出 #2

79

说明/提示

输入输出样例 1 说明

牛牛的作业成绩是 100100 分,小测成绩是 100100 分,期末考试成绩是 8080 分,总成绩是 100 \\times 20\\%+100 \\times 30\\%+80 \\times 50\\%=20+30+40=90100×20%+100×30%+80×50%=20+30+40=90。

输入输出样例 2 说明

牛牛的作业成绩是 6060 分,小测成绩是 9090 分,期末考试成绩是 8080 分,总成绩是 60 \\times 20\\%+90 \\times 30\\%+80 \\times 50\\%=12+27+40=7960×20%+90×30%+80×50%=12+27+40=79。

数据说明

对于 30\\%30% 的数据,A=B=0A=B=0。

对于另外 30\\%30% 的数据,A=B=100A=B=100。

对于 100\\%100% 的数据,0≤A,B,C≤1000≤A,B,C≤100 且 A,B,CA,B,C 都是 1010 的整数倍。

源代码:

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
int main(){int a,b,c;cin>>a>>b>>c;cout<<a/5+b/10*3+c/2;return 0;
}