洛谷刷题入门篇:顺序结构

链接如下:https://www.luogu.com.cn/training/100#problems


一、Hello,World!

题目链接:https://www.luogu.com.cn/problem/B2002

题目描述

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

提示:

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

输入格式

输出格式

样例 #1

样例输入 #1

样例输出 #1

Hello,World!

代码(python)

print("Hello,World!")

二、输出字符菱形

题目链接:https://www.luogu.com.cn/problem/B2025

题目描述

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

输入格式

没有输入要求。

输出格式

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

样例 #1

样例输入 #1


样例输出 #1

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

代码(python)


print("  *")
print(" ***")
print("*****")
print(" ***")
print("  *")

三、超级玛丽游戏

题目链接:https://www.luogu.com.cn/problem/P1000

题目背景

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

建议完成本题目后继续尝试 P1001P1008

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

题目描述

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

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

输入格式

输出格式

如描述

提示

广告

洛谷出品的算法教材,帮助您更简单的学习基础算法。【官方网店绝赞热卖中!】>>>

代码(python)



print("                ********");
print("               ************");
print("               ####....#.");
print("             #..###.....##....");
print("             ###.......######              ###            ###");
print("                ...........               #...#          #...#");
print("               ##*#######                 #.#.#          #.#.#");
print("            ####*******######             #.#.#          #.#.#");
print("           ...#***.****.*###....          #...#          #...#");
print("           ....**********##.....           ###            ###");
print("           ....****    *****....");
print("             ####        ####");
print("           ######        ######");
print("##############################################################");
print("#...#......#.##...#......#.##...#......#.##------------------#");
print("###########################################------------------#");
print("#..#....#....##..#....#....##..#....#....#####################");
print("##########################################    #----------#");
print("#.....#......##.....#......##.....#......#    #----------#");
print("##########################################    #----------#");
print("#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#");
print("##########################################    ############");

四、 A+B Problem

题目链接:https://www.luogu.com.cn/problem/P1001

题目背景

强烈推荐新用户必读帖

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

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

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

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

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

题目描述

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

注意

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

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

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

输入格式

两个以空格分开的整数。

输出格式

一个整数。

样例 #1

样例输入 #1

20 30

样例输出 #1

50

提示

广告

洛谷出品的算法教材,帮助您更简单的学习基础算法。【官方网店绝赞热卖中!】>>>

本题各种语言的程序范例:

C

#include <stdio.h>

int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d\n", a+b);
    return 0;
}

C++

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int a,b;
    cin >> a >> b;
    cout << a+b << endl;
    return 0;
}

Pascal

var a, b: longint;
begin
    readln(a,b);
    writeln(a+b);
end.

Python2

s = raw_input().split()
print int(s[0]) + int(s[1])

Python3

s = input().split()
print(int(s[0]) + int(s[1]))

Java

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String args[]) throws Exception {
        Scanner cin=new Scanner(System.in);
        int a = cin.nextInt(), b = cin.nextInt();
        System.out.println(a+b);
    }
}

JavaScript (Node.js)

const fs = require('fs')
const data = fs.readFileSync('/dev/stdin')
const result = data.toString('ascii').trim().split(' ').map(x => parseInt(x)).reduce((a, b) => a + b, 0)
console.log(result)
process.exit() // 请注意必须在出口点处加入此行

Ruby

a, b = gets.split.map(&:to_i)
print a+b

PHP

<?php
$input = trim(file_get_contents("php://stdin"));
list($a, $b) = explode(' ', $input);
echo $a + $b;

Rust

use std::io;

fn main(){
    let mut input=String::new();
    io::stdin().read_line(&mut input).unwrap();
    let mut s=input.trim().split(' ');

    let a:i32=s.next().unwrap()
               .parse().unwrap();
    let b:i32=s.next().unwrap()
               .parse().unwrap();
    println!("{}",a+b);
}

Go

package main

import "fmt"

func main() {
    var a, b int
    fmt.Scanf("%d%d", &a, &b)
    fmt.Println(a+b)
}

C# Mono

using System;

public class APlusB{
    private static void Main(){
        string[] input = Console.ReadLine().Split(' ');
        Console.WriteLine(int.Parse(input[0]) + int.Parse(input[1]));
    }
}

Visual Basic Mono

Imports System

Module APlusB
    Sub Main()
        Dim ins As String() = Console.ReadLine().Split(New Char(){" "c})
        Console.WriteLine(Int(ins(0))+Int(ins(1)))
    End Sub
End Module

Kotlin

fun main(args: Array<String>) {
    val (a, b) = readLine()!!.split(' ').map(String::toInt)
    println(a + b)
}

Haskell

main = do
    [a, b] <- (map read . words) `fmap` getLine
    print (a+b)

Scala

object Main extends App {
    println(scala.io.StdIn.readLine().split(" ").map(_.toInt).sum)
}

Perl

my $in = <STDIN>;
chomp $in;
$in = [split /[\s,]+/, $in];
my $c = $in->[0] + $in->[1];
print "$c\n";

五、 字符三角形

题目链接:https://www.luogu.com.cn/problem/B2005

题目描述

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

输入格式

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

输出格式

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

样例 #1

样例输入 #1

*

样例输出 #1

*
 ***
*****

提示

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

代码(python)

a = input()
print("  "+a)
print(" "+a+a+a)
print(a+a+a+a+a)

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

题目链接:https://www.luogu.com.cn/problem/P5703

题目描述

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

输入格式

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

输出格式

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

样例 #1

样例输入 #1

5 3

样例输出 #1

15

代码(python)

a,b = map(int,input().split(" "))
print(a*b)

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

题目链接:https://www.luogu.com.cn/problem/P5704

题目描述

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

输入格式

输出格式

样例 #1

样例输入 #1

q

样例输出 #1

Q

代码(python)

print(input().upper())

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

题目链接:https://www.luogu.com.cn/problem/P5705

题目描述

输入一个不小于 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

代码(python)

a = input()

print(float(a[::-1]))

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

题目链接:https://www.luogu.com.cn/problem/P5706

题目描述

现在有 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 0t10000 且小数点后不超过 3 3 3 位, 1 ≤ n ≤ 1000 1\leq n\leq 1000 1n1000

代码(python)

n,t = map(float,input().split(" "))

print(round(n/t,3))
print(int(2*t))

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

题目链接:https://www.luogu.com.cn/problem/P5708

题目描述

一个三角形的三边长分别是 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(pa)(pb)(pc) ,其中 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 0a,b,c1000,每个边长输入时不超过 2 2 2 位小数。

代码(C)

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>

int main()
{
	double a, b, c;
	scanf("%lf%lf%lf",&a,&b,&c);
	
	double p = 0.5*(a+b+c);
	double sum = sqrt(p*(p - a)*(p - b)*(p - c));
	printf("%.1lf",sum);
	return 0;	
} 

十一、 【深基2.例12】上学迟到

题目链接:https://www.luogu.com.cn/problem/P5707

题目描述

学校和 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 1s,v104

代码(python)

import math

s, v = map(int, input().split())
n = 8 * 60 + 24 * 60  # 两天总共可以走的时间
t = math.ceil(s / v) + 10  # math.ceil向上取整
n = n - t  # 得出剩下的时间
if n > 24 * 60:  # 判断是否在前一天
    n -= 24 * 60
b = n % 60  # 出发的分
a = n / 60  # 出发的时
if a < 10:
    if b < 10:
        print("0%d:0%d" % (a, b))
    else:
        print("0%d:%d" % (a, b))
else:
    if b < 10:
        print("%d:0%d" % (a, b))
    else:
        print("%d:%d" % (a, b))

十二、 大象喝水

题目链接:https://www.luogu.com.cn/problem/B2029

题目描述

一只大象口渴了,要喝 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 1h500 1 ≤ r ≤ 100 1 \leq r \leq 100 1r100

代码(python)

import math

h ,r = map(int , input().split(" "))

pi = 3.14
v  = pi*r*r*h*0.001
num = math.ceil(20/v)
print(num)

十三、 小鱼的游泳时间

题目链接:https://www.luogu.com.cn/problem/P1425

题目描述

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

这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按 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 0a,c24 0 ≤ b , d ≤ 60 0\le b,d \le 60 0b,d60,且结束时间一定晚于开始时间。

代码(python)

import math

a,b,c,d = map(int , input().split(" "))

num = (c-a)*60+d-b

hour = math.ceil(num/60)-1
minute = num - hour*60
print(hour,minute)

十四、 小玉买文具

题目链接:https://www.luogu.com.cn/problem/P1421

题目描述

班主任给小玉一个任务,到文具店里买尽量多的签字笔。已知一只签字笔的价格是 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 0a104 0 ≤ b ≤ 9 0 \leq b \leq 9 0b9

代码(python)

import math

a,b = map(int , input().split(" "))

all = a*10+b
price=19
print(math.ceil(all/price)-1)

十五、 [NOIP2017 普及组] 成绩

题目链接:https://www.luogu.com.cn/problem/P3954

题目背景

NOIP2017 普及组 T1

题目描述

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

总成绩=作业成绩$ \times 20%+ 小测成绩 小测成绩 小测成绩×30%+ 期末考试成绩 期末考试成绩 期末考试成绩 \times 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 0A,B,C100 A , B , C A,B,C A,B,C 都是 10 10 10 的整数倍。

代码(python)



a,b,c = map(int,input().split(" "))

num =(int)( a*0.2 + b*0.3 + c*0.5)

print(num)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值