## 跳转地址:https://www.luogu.com.cn/training/100
Hello,World!
题目描述
编写一个能够输出 Hello,World!
的程序。
提示:
- 使用英文标点符号;
Hello,World!
逗号后面没有空格。H
和W
为大写字母。
输入格式
输出格式
样例 #1
样例输入 #1
无
样例输出 #1
Hello,World!
#include <cstdio>
int main(){
printf("Hello,World!");
}
输出字符菱形
题目描述
用 *
构造一个对角线长
5
5
5 个字符,倾斜放置的菱形。
输入格式
没有输入要求。
输出格式
如样例所示。用 *
构成的菱形。
样例 #1
样例输入 #1
样例输出 #1
*
***
*****
***
*
#include <cstdio>
using namespace std;
int main()
{
/*
*
***
*****
***
*
*/
printf(" *\n");
printf(" ***\n");
printf("*****\n");
printf(" ***\n");
printf(" *\n");
return 0;
}
超级玛丽游戏
题目背景
本题是洛谷的试机题目,可以帮助了解洛谷的使用。
另外强烈推荐新用户必读贴
题目描述
超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。
********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############
输入格式
无
输出格式
如描述
#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;
}
字符三角形
题目描述
给定一个字符,用它构造一个底边长 5 5 5 个字符,高 3 3 3 个字符的等腰字符三角形。
输入格式
输入只有一行,包含一个字符。
输出格式
该字符构成的等腰三角形,底边长 5 5 5 个字符,高 3 3 3 个字符。
样例 #1
样例输入 #1
*
样例输出 #1
*
***
*****
提示
对于 100 % 100 \% 100% 的数据,输入的字符是 ASCII 中的可见字符。
#include <cstdio>
using namespace std;
int main(){
char a;
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;
}
/*
*
***
*****
*/
【深基2.例5】苹果采购
题目描述
现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?
输入格式
输入两个不超过 1 0 9 10^9 109 正整数,分别表示每人分到的数量和同学的人数。
输出格式
一个整数,表示答案。保证输入和答案都在 int 范围内的非负整数。
样例 #1
样例输入 #1
5 3
样例输出 #1
15
#include <cstdio>
int main(){
int a,b;
scanf("%d%d",&a,&b);
printf("%d",a*b);
return 0;
}
【深基2.例6】字母转换
题目描述
输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。
输入格式
输出格式
样例 #1
样例输入 #1
q
样例输出 #1
Q
#include <cstdio>
using namespace std;
int main(){
char a;
scanf("%c",&a);
printf("%c",a-32);
return 0;
}
【深基2.例7】数字反转
题目描述
输入一个不小于 100 100 100 且小于 1000 1000 1000,同时包括小数点后一位的一个浮点数,例如 123.4 123.4 123.4 ,要求把这个数字翻转过来,变成 4.321 4.321 4.321 并输出。
输入格式
一行一个浮点数
输出格式
一行一个浮点数
样例 #1
样例输入 #1
123.4
样例输出 #1
4.321
#include<iostream>
using namespace std;
int main(){
double a;
cin>>a;
int c=a*10;
int b[4];
int i=0;
while(c>0){
b[i]=c%10;
c/=10;
i++;
}
a=b[0]+b[1]*0.1+b[2]*0.01+b[3]*0.001;
cout<<a;
return 0;
}
【深基2.例8】再分肥宅水
题目描述
现在有 t t t 毫升肥宅快乐水,要均分给 n n n 名同学。每名同学需要 2 2 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 3 3 位),以及一共需要多少个杯子。
输入格式
输入一个实数 t t t 和一个正整数 n n n,使用空格隔开。
输出格式
输出两行。
第一行输出一个三位小数,表示可以获得多少毫升饮料。第二行输出一个正整数,表示一共需要多少个杯子。
样例 #1
样例输入 #1
500.0 3
样例输出 #1
166.667
6
提示
对于所有数据, 0 ≤ t ≤ 10000 0\leq t\leq 10000 0≤t≤10000 且小数点后不超过 3 3 3 位, 1 ≤ n ≤ 1000 1\leq n\leq 1000 1≤n≤1000。
#include <cstdio>
int main(){
double t;
int n;
scanf("%lf%d",&t,&n);
printf("%.3lf\n%d\n",t/n,n*2);
return 0;
}
【深基2.习2】三角形面积
题目描述
一个三角形的三边长分别是 a a a、 b b b、 c c c,那么它的面积为 p ( p − a ) ( p − b ) ( p − c ) \sqrt{p(p-a)(p-b)(p-c)} p(p−a)(p−b)(p−c),其中 p = 1 2 ( a + b + c ) p=\frac{1}{2}(a+b+c) p=21(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 1 1 1 位小数。
输入格式
第一行输入三个实数 a , b , c a,b,c a,b,c,以空格隔开。
输出格式
输出一个实数,表示三角形面积。精确到小数点后 1 1 1 位。
样例 #1
样例输入 #1
3 4 5
样例输出 #1
6.0
提示
数据保证能构成三角形, 0 ≤ a , b , c ≤ 1000 0\leq a,b,c\leq 1000 0≤a,b,c≤1000,每个边长输入时不超过 2 2 2 位小数。
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
int main(){
double a,b,c,p;
scanf("%lf%lf%lf",&a,&b,&c);
p=(a+b+c)/2;
printf("%.1lf\n",round(sqrt(p*(p-a)*(p-b)*(p-c))*10)/10);
return 0;
}
【深基2.例12】上学迟到
题目描述
学校和 yyy 的家之间的距离为 s s s 米,而 yyy 以 v v v 米每分钟的速度匀速走向学校。
在上学的路上,yyy 还要额外花费 10 10 10 分钟的时间进行垃圾分类。
学校要求必须在上午 8:00 \textrm{8:00} 8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。
由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。
输入格式
一行两个正整数 s , v s,v s,v,分别代表路程和速度。
输出格式
输出一个 24 24 24 小时制下的时间,代表 yyy 最晚的出发时间。
输出格式为 HH:MM \texttt{HH:MM} HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0 0 0。
样例 #1
样例输入 #1
100 99
样例输出 #1
07:48
提示
对于 100 % 100\% 100% 的数据, 1 ≤ s , v ≤ 1 0 4 1 \le s,v \le 10^4 1≤s,v≤104。
#include <cstdio>
int main()
{
int s;
int v;
scanf("%d%d",&s,&v);
int t;
if(s%v==0)
{
t=s/v;
t+=9;
}
else
{
t=s/v;
t+=10;
}
int H;
int M;
H=7;
M=59;
while(t!=0)
{
if(M!=0)
{
M--;
}
else
{
if(H!=0)
{
H--;
M=59;
}
else
{
H=23;
M=59;
}
}
t--;
}
int h1,h2;
int m1,m2;
h1=H/10;
h2=H-(10*(H/10));
m1=M/10;
m2=M-(10*(M/10));
printf("%d%d:%d%d",h1,h2,m1,m2);
}
大象喝水
题目描述
一只大象口渴了,要喝 20 20 20 升水才能解渴,但现在只有一个深 h h h 厘米,底面半径为 r r r 厘米的小圆桶 ( h h h 和 r r r 都是整数)。问大象至少要喝多少桶水才会解渴。
Update:数据更新,这里我们近似地取圆周率 π = 3.14 \pi = 3.14 π=3.14。
输入格式
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深 h h h 和底面半径 r r r,单位都是厘米。
输出格式
输出一行,包含一个整数,表示大象至少要喝水的桶数。
样例 #1
样例输入 #1
23 11
样例输出 #1
3
提示
数据规模与约定
对于全部的测试点,保证 1 ≤ h ≤ 500 1 \leq h \leq 500 1≤h≤500, 1 ≤ r ≤ 100 1 \leq r \leq 100 1≤r≤100。
#include <cstdio>
int main(){
long long r,h,n;
double pi=3.14;
scanf("%lld%lld",&h,&r);
n=20000/(pi*r*r*h)+1;
printf("%lld",n);
}
小鱼的游泳时间
题目描述
伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。
这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按 24 24 24 小时制计算),它发现自己从 a a a 时 b b b 分一直游泳到当天的 c c c 时 d d d 分,请你帮小鱼计算一下,它这天一共游了多少时间呢?
小鱼游的好辛苦呀,你可不要算错了哦。
输入格式
一行内输入四个整数,以空格隔开,分别表示题目中的 a , b , c , d a, b, c, d a,b,c,d。
输出格式
一行内输出两个整数 e e e 和 f f f,用空格间隔,依次表示小鱼这天一共游了多少小时多少分钟。其中表示分钟的整数 f f f 应该小于 60 60 60。
样例 #1
样例输入 #1
12 50 19 10
样例输出 #1
6 20
提示
对于全部测试数据, 0 ≤ a , c ≤ 24 0\le a,c \le 24 0≤a,c≤24, 0 ≤ b , d ≤ 60 0\le b,d \le 60 0≤b,d≤60,且结束时间一定晚于开始时间。
#include <cstdio>
int main(){
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
if (d<b){
c-=1;
d+=60;
}
printf("%d %d\n",c-a,d-b);
}
小玉买文具
题目描述
班主任给小玉一个任务,到文具店里买尽量多的签字笔。已知一只签字笔的价格是 1 1 1 元 9 9 9 角,而班主任给小玉的钱是 a a a 元 b b b 角,小玉想知道,她最多能买多少只签字笔呢。
输入格式
输入只有一行两个整数,分别表示 a a a 和 b b b。
输出格式
输出一行一个整数,表示小玉最多能买多少只签字笔。
样例 #1
样例输入 #1
10 3
样例输出 #1
5
提示
数据规模与约定
对于全部的测试点,保证 0 ≤ a ≤ 1 0 4 0 \leq a \leq 10^4 0≤a≤104, 0 ≤ b ≤ 9 0 \leq b \leq 9 0≤b≤9。
#include <cstdio>
int main(){
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",(a*10+b)/19);
return 0;
}
[NOIP2017 普及组] 成绩
题目背景
NOIP2017 普及组 T1
题目描述
牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是:
总成绩 = 作业成绩 × 20 % + 小测成绩 × 30 % + 期末考试成绩 × 50 % \text{总成绩}=\text{作业成绩}\times 20\%+\text{小测成绩}×30\%+\text{期末考试成绩} \times 50\% 总成绩=作业成绩×20%+小测成绩×30%+期末考试成绩×50%
牛牛想知道,这门课程自己最终能得到多少分。
输入格式
三个非负整数 A , B , C A,B,C A,B,C,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是 100 100 100 分。
输出格式
一个整数,即牛牛这门课程的总成绩,满分也是 100 100 100 分。
样例 #1
样例输入 #1
100 100 80
样例输出 #1
90
样例 #2
样例输入 #2
60 90 80
样例输出 #2
79
提示
样例 1 说明
牛牛的作业成绩是 100 100 100 分,小测成绩是 100 100 100 分,期末考试成绩是 80 80 80 分,总成绩是 100 × 20 % + 100 × 30 % + 80 × 50 % = 20 + 30 + 40 = 90 100 \times 20\%+100 \times 30\%+80 \times 50\%=20+30+40=90 100×20%+100×30%+80×50%=20+30+40=90。
样例 2 说明
牛牛的作业成绩是 60 60 60 分,小测成绩是 90 90 90 分,期末考试成绩是 80 80 80 分,总成绩是 60 × 20 % + 90 × 30 % + 80 × 50 % = 12 + 27 + 40 = 79 60 \times 20\%+90 \times 30\%+80 \times 50\%=12+27+40=79 60×20%+90×30%+80×50%=12+27+40=79。
数据说明
对于 30 % 30\% 30% 的数据, A = B = 0 A=B=0 A=B=0。
对于另外 30 % 30\% 30% 的数据, A = B = 100 A=B=100 A=B=100。
对于 100 % 100\% 100% 的数据, 0 ≤ A , B , C ≤ 100 0≤A,B,C≤100 0≤A,B,C≤100 且 A , B , C A,B,C A,B,C 都是 10 10 10 的整数倍。
#include <cstdio>
int main(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d",(a*2+b*3+c*5)/10);
return 0;
}