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

博客主页:林睿聪-CSDN博客 

专栏链接:https://blog.csdn.net/2301_80065984/category_12720646.html?spm=1001.2014.3001.5482

祝您学有所成!!!

今天为大家讲解洛谷里顺序结构的题目,话不多说马上开始!!!

目录

题目链接

B2002  Hello,World!

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

题解

B2025 输出字符菱形

题目描述

输入格式

输出格式

输入输出样例

输入 #1

 题解

P1000 超级玛丽游戏 

题目背景

题目描述

输入格式

输出格式

输入输出样例

题解

P1001 A+B Problem

题目背景

题目描述

输入格式 

输出格式

输入输出样例

输入 #1

输出 #1

题解

B2005 字符三角形

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

说明/提示

题解

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

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

题解

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

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

题解

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

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

题解

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

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

说明/提示

题解

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

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

说明/提示

题解

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

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

说明/提示

题解

B2029 大象喝水

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

说明/提示

题解

P1425 小鱼的游泳时间

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

说明/提示

题解

P1421 小玉买文具 

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1 

说明/提示 

题解

 P3954 [NOIP2017 普及组] 成绩

题目背景

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1 

输入 #2 

 说明/提示

样例 1 说明

样例 2 说明

数据说明

题解

-----------------------------------------------------------正文----------------------------------------------------------------

题目链接

B2002Hello,World! - 洛谷
B2025输出字符菱形 - 洛谷
P1000超级玛丽游戏 - 洛谷
P1001A+B Problem - 洛谷
B2005字符三角形 - 洛谷
P5703【深基2.例5】苹果采购 - 洛谷
P5704【深基2.例6】字母转换 - 洛谷
P5705【深基2.例7】数字反转 - 洛谷
P5706【深基2.例8】再分肥宅水 - 洛谷
P5708【深基2.习2】三角形面积 - 洛谷
P5707【深基2.例12】上学迟到 - 洛谷
B2029大象喝水 - 洛谷
P1425小鱼的游泳时间 - 洛谷
P1421小玉买文具 - 洛谷
P3954[NOIP2017 普及组] 成绩 - 洛谷

B2002  Hello,World!

题目描述

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

提示:

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

输入格式

输出格式

输入输出样例

输入 #1
输出 #1
Hello,World!

题解

 试(shui)题非常的简单,只需要输出“Hello,World!”就可以了,直接上代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	printf("Hello,World!"); 
	return 0;
}

B2025 输出字符菱形

题目描述

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

输入格式

没有输入要求。

输出格式

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

输入输出样例

输入 #1
 

输出 #1

  *
 ***
*****
 ***
  *

 题解

我们可以直接按照题目的样例一复制,再一粘贴,本题就又AC了

#include<bits/stdc++.h>
using namespace std;
int main()
{
	printf("  *  \n");
	printf(" *** \n");
	printf("*****\n");
	printf(" *** \n");
	printf("  *  \n"); 
	return 0;
}

P1000 超级玛丽游戏 

题目背景

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

建议完成本题目后继续尝试A+B Problem - 洛谷[NOIP1998 普及组] 三连击 - 洛谷

另外强烈推荐讨论 洛谷新用户必读 - Luogu Spilopelia

题目描述

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

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

输入格式

输出格式

如描述

输入输出样例

题解

相信大家第一眼的感觉是:好多啊!!!,的确,每行每行地输出的确会让人烦躁(说不定会得密集恐惧症)今天给大家推荐一个printf函数的新用法:

#include<stdio.h>
int main() {
    printf(
    "                ********\n"
    "               ************\n"
    "               ####....#.\n"
    "             #..###.....##....\n"
    "             ###.......######              ###            ###\n"
    "                ...........               #...#          #...#\n"
    "               ##*#######                 #.#.#          #.#.#\n"
    "            ####*******######             #.#.#          #.#.#\n"
    "           ...#***.****.*###....          #...#          #...#\n"
    "           ....**********##.....           ###            ###\n"
    "           ....****    *****....\n"
    "             ####        ####\n"
    "           ######        ######\n"
    "##############################################################\n"
    "#...#......#.##...#......#.##...#......#.##------------------#\n"
    "###########################################------------------#\n"
    "#..#....#....##..#....#....##..#....#....#####################\n"
    "##########################################    #----------#\n"
    "#.....#......##.....#......##.....#......#    #----------#\n"
    "##########################################    #----------#\n"
    "#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#\n"
    "##########################################    ############\n"
    );
    return 0;
}

不得不说这用法太香了 ~\(≧▽≦)/~!!!

P1001 A+B Problem

题目背景

强烈推荐新用户必读帖

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

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

若因此类问题出现本机似乎输出了正确的结果,但是实际提交结果为错误的现象,请勿认为是洛谷评测机出了问题,而是你的代码中可能存在多余的输出信息。用户可以参考在题目末尾提供的代码。

此外,请善用应用中的在线 IDE 功能,以避免不同平台的评测产生差异。

最后,请不要在对应的题目讨论区中发布自己的题解,请发布到题解区域中,否则将处以删除或禁言的处罚。若发现无法提交题解则表明本题题解数量过多,仍不应发布讨论。若您的做法确实与其他所有题解均不一样,请联系管理员添加题解。

题目描述

输入两个整数 a,b,输出它们的和(∣a∣,∣b∣≤10的9次方)。

注意

  1. Pascal 使用 integer 会爆掉哦!
  2. 有负数哦!
  3. C/C++ 的 main 函数必须是 int 类型,而且 C 最后要 return 0。这不仅对洛谷其他题目有效,而且也是 NOIP/CSP/NOI 比赛的要求!

好吧,同志们,我们就从这一题开始,向着大牛的路进发。

任何一个伟大的思想,都有一个微不足道的开始。(小编认为很有道理)

输入格式 

两个以空格分开的整数。

输出格式

一个整数。

输入输出样例

输入 #1
20 30
输出 #1
50

题解

这道试(shui)题也是非常的简单好吧,拿出独家秘制的小汉堡scanf函数和printf函数,这道题目瞬间被秒杀:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d",a+b);
}

秒杀题目的感觉真好,下一道!!!

B2005 字符三角形

题目描述

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

输入格式

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

输出格式

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

输入输出样例

输入 #1
*
输出 #1
  *
 ***
*****

说明/提示

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

题解

好吧,又来叫我们画画了(咋怎么都绕不开字符画呢?)刚刚画完菱形,又叫我们画三角形,还要用输入字符。不过没事,像这样:

#include<bits/stdc++.h>
using namespace std;
char a;
int main()
{
	scanf("%c",&a);
	printf("  %c  \n",a);
	printf(" %c%c%c \n",a,a,a);
	printf("%c%c%c%c%c\n",a,a,a,a,a);
	return 0;
}

其实好像不难

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

题目描述

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

输入格式

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

输出格式

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

输入输出样例

输入 #1
5 3
输出 #1
15

题解

终于不用画画了,把这题目细细地一品,这不就是A*B Problem吗!用祖传的乘法口诀,一一得一,一二得二......

#include<bits/stdc++.h>
using namespace std;
int a,b;
int main()
{
	scanf("%d%d",&a,&b);
	printf("%d",a*b);
	return 0;
}

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

题目描述

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

输入格式

输出格式

输入输出样例

输入 #1
q
输出 #1
Q

题解

这道题终于上难度了,这时就要请我们的大神诸葛亮ASCII码表出场了:

我们观察发现,大写与小写字母的编码相差32,那么这样,我们就能做了:

#include<bits/stdc++.h>
using namespace std;
char a,b;
int main()
{
	scanf("%c",&a);
	b=a-32;//char类型可以强制类型转换,用编码相减
	printf("%c",b);
	return 0;
}

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

题目描述

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

输入格式

一行一个浮点数

输出格式

一行一个浮点数

输入输出样例

输入 #1
123.4
输出 #1
4.321

题解

这道题直接用double类型不方便,我们不妨使用char字符类型来做:

#include<bits/stdc++.h>
using namespace std;
char a,b,c,d; 
int main()
{
	scanf("%c%c%c. %c",&a,&b,&c,&d);
	printf("%c.%c%c%c",d,c,b,a);
	return 0;
}

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

题目描述

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

输入格式

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

输出格式

输出两行。

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

输入输出样例

输入 #1
500.0 3
输出 #1
166.667
6

说明/提示

对于所有数据,0≤t≤10000 且小数点后不超过 3 位,1≤n≤1000。

题解

这道题直接计算即可,保留小数的方法参见代码:

#include<bits/stdc++.h>
using namespace std;
double t,a;
int n;
int main()
{
	scanf("%lf %d",&t,&n);
	a=t/n;
	printf("%.3lf\n%d",a,n*2);
	return 0;
}

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

题目描述

一个三角形的三边长分别是 a、b、c,那么它的面积为√p(p-a)(p-b)(p-c),其中p=二分之一(a+b+c) 。输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。

输入格式

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

输出格式

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

输入输出样例

输入 #1
3 4 5
输出 #1
6.0

说明/提示

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

题解

本题直接根据数据套用公式即可,注意输入的是浮点数

#include<bits/stdc++.h>
using namespace std;
double a,b,c,p,cnt,ans; 
int main()
{
	scanf("%lf%lf%lf",&a,&b,&c);
	p=(a+b+c)/2;
	cnt=(p-a)*(p-b)*(p-c)*p;
	ans=sqrt(cnt);
	printf("%.1lf",ans);
	return 0;
}

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

题目描述

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

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

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

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

输入格式

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

输出格式

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

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

输入输出样例

输入 #1
100 99
输出 #1
07:48

说明/提示

对于 100%的数据,1≤s,v≤十的四次方。

题解

本题需要进行反推,可以全都用分钟来计算,最后在转化单位,由于会提前的原因,所以要判断是否过一天

#include<bits/stdc++.h>
using namespace std;
double s,v,cnt;
int ans,h,m,tmp,tot=8*60+24*60;
int main()
{
	scanf("%lf%lf",&s,&v);
	cnt=s/v;
	tmp=ceil(cnt);
	tmp+=10;
	tot-=tmp;
	if(tot>=24*60) tot-=24*60; 
	h=tot%60;
	tot/=60;
	m=tot;
	printf("%02d:%02d",m,h);
	return 0;
}

B2029 大象喝水

题目描述

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

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

输入格式

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

输出格式

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

输入输出样例

输入 #1
23 11
输出 #1
3

说明/提示

数据规模与约定

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

题解

本题使用后要向上取整,否则会错

#include<bits/stdc++.h>
using namespace std;
double cnt;
int ans,h,r;
int main()
{
	scanf("%d%d",&h,&r);
	cnt=3.14*r*1.0*r*h;
	cnt/=1000;
	ans=ceil(20/cnt);
	printf("%d",ans);
	return 0;
}

P1425 小鱼的游泳时间

题目描述

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

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

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

输入格式

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

输出格式

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

输入输出样例

输入 #1
12 50 19 10
输出 #1
6 20

说明/提示

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

题解

本题可以将其全部转化为分钟,然后再相减,在转化为时间

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,cnt,tmp,tot,h,m;
int main()
{
	scanf("%d%d%d%d",&a,&b,&c,&d);
	cnt=a*60+b;
	tmp=c*60+d;
	tot=abs(tmp-cnt);
	m=tot%60;
	h=tot/60;
	printf("%d %d",h,m);
	return 0;
}

P1421 小玉买文具 

题目描述

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

输入格式

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

输出格式

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

输入输出样例

输入 #1
10 3
输出 #1 
5

说明/提示 

数据规模与约定

对于全部的测试点,保证 0≤a≤十的四次方,0≤b≤9。

题解

本题可以将价钱全部转化为角作单位,再计算可以买多少支笔

#include<bits/stdc++.h>
using namespace std;
int a,b,cnt;
int main()
{
	scanf("%d%d",&a,&b);
	cnt=a*10+b;
	cnt/=19;
	printf("%d",cnt);
	return 0;
}

 P3954 [NOIP2017 普及组] 成绩

题目背景

NOIP2017 普及组 T1

题目描述

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

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

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

输入格式

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

输出格式

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

输入输出样例

输入 #1
100 100 80 
输出 #1 
90
输入 #2 
60 90 80 

输出 #2

79

 说明/提示

样例 1 说明

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

样例 2 说明

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

数据说明

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

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

对于 100% 的数据,0≤A,B,C≤100 且 A,B,C 都是 10 的整数倍。

题解

本题可以直接套公式计算,代码如下:

#include<bits/stdc++.h>
using namespace std;
int a,b,c;
int main()
{
	scanf("%d%d%d",&a,&b,&c);
	a=a/5;
	b=b/10*3;
	c=c/2;
	printf("%d",a+b+c);
	return 0;
}

------------------------------------------------------------结束了------------------------------------------------------------

本篇结束了,希望大家点赞加关注,同时发表您的宝贵意见,谢谢支持!!! 

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值