洛谷——【入门1】顺序结构

【入门1】顺序结构

  • 【题目网址】
  • B2002 Hello,World!
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入输出样例
      • 输入 #1
      • 输出 #1
    • 代码如下:
  • B2025 输出字符菱形
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入输出样例
      • 输入 #1
      • 输出 #1
    • 代码如下:
  • P1000 超级玛丽游戏
    • 题目背景
    • 题目描述
    • 输入格式
    • 输出格式
    • 代码如下:
  • P1001 A+B Problem
    • 题目背景
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示(代码)
  • 字符三角形
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
    • 代码如下:
  • 【深基2.例5】苹果采购
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 代码如下
  • 【深基2.例6】字母转换
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 代码
  • 【深基2.例7】数字反转
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 代码
  • 【深基2.例8】再分肥宅水
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
    • 代码
  • 【深基2.习2】三角形面积
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
    • 代码
  • 【深基2.例12】上学迟到
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
    • 代码
  • 大象喝水
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
      • 数据规模与约定
    • 代码
  • 小鱼的游泳时间
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
    • 代码
  • 小玉买文具
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
        • 数据规模与约定
    • 代码
  • [NOIP2017 普及组] 成绩
    • 题目背景
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 样例 #2
      • 样例输入 #2
      • 样例输出 #2
    • 提示
      • 输入输出样例 1 说明
      • 输入输出样例 2 说明
      • 数据说明
    • 代码

【题目网址】

【入门1】顺序结构
B2002 Hello,World!
B2025 输出字符菱形
P1000 超级玛丽游戏
P1001 A+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!

代码如下:

#include
using namespace std;//命名空间
int main() {//表示主函数
	cout<<"Hello,World!"<<endl;//<
	return 0;//表示结束程序
}

B2025 输出字符菱形

题目描述

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

输入格式

没有输入要求。

输出格式

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

输入输出样例

输入 #1

输出 #1

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

代码如下:

#include
using namespace std;
int main()
{
   char ch='*';
   cout<<"  "<<ch<<endl;
   cout<<" "<<ch<<ch<<ch<<endl;
   cout<<ch<<ch<<ch<<ch<<ch<<endl;
   cout<<" "<<ch<<ch<<ch<<endl;
   cout<<"  "<<ch<<endl;
   return 0;
}

P1000 超级玛丽游戏

题目背景

本题是洛谷的试机题目,可以帮助了解洛谷的使用。
建议完成本题目后继续尝试 P1001、P1008。
另外强烈推荐新用户必读贴

题目描述

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

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

输入格式

输出格式

如描述

代码如下:

#include
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

题目背景

强烈推荐新用户必读帖。
不熟悉算法竞赛的选手请看这里:
算法竞赛中要求的输出格式中,不能有多余的内容这也包括了“请输入整数 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 
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d\n", a+b);
    return 0;
}

C++

#include 
#include 
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


$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 = ;
chomp $in;
$in = [split /[\s,]+/, $in];
my $c = $in->[0] + $in->[1];
print "$c\n";

字符三角形

题目描述

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

输入格式

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

输出格式

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

样例 #1

样例输入 #1

*

样例输出 #1

*
 ***
*****

提示

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

代码如下:

#include
using namespace std;
int main()
{
	char ch;
	cin>>ch;
	cout<<"  "<<ch<<endl;
	cout<<" "<<ch<<ch<<ch<<endl;
	cout<<""<<ch<<ch<<ch<<ch<<ch<<endl;
	return 0;
}

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

题目描述

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

输入格式

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

输出格式

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

样例 #1

样例输入 #1

5 3

样例输出 #1

15

代码如下

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

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

题目描述

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

输入格式

输出格式

样例 #1

样例输入 #1

q

样例输出 #1

Q

代码

#include
using namespace std;
int main()
{
	char a;
	cin>>a;
	cout<<char(a-32)<<endl;
	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 
using namespace std;
int main() {
    char a,b,c,dot,d;
    cin >> a >> b >> c >> dot >>d;
    cout << d << dot << c << b <<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 0t10000 且小数点后不超过 3 3 3 位, 1 ≤ n ≤ 1000 1\leq n\leq 1000 1n1000

代码

#include
using namespace std;
int main()
{
    double t;
    int n;
    cin>>t>>n;
    printf("%.3lf\n",t/n);
    cout<<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(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 位小数。

代码

#include
using namespace std;
int main()
{
	double a,b,c,s,p;
	cin>>a>>b>>c;
	p=(a+b+c)/2;
	s=sqrt(p*(p-a)*(p-b)*(p-c));
	printf("%.1lf",s);
	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 1s,v104

代码

#include
using namespace std;
int main() {
	int a,b,s,v,t;
	cin>>s>>v;
	int n;
	n=8*60+24*60;
	if(s%v!=0)  //向上取整咯
		t=s/v+1+10;  //十分钟处理垃圾
	else
		t=s/v+10;  //判断完毕
	n=n-t;     //
	if(n>=24*60)
		n=n-24*60;
	a=n/60;  //a为小时
	b=n%60;  //b为分钟
	if(a<10)
		cout<<'0'<<a<<':';//a和b小于10要补0 
	else
		cout<<a<<':';
	if(b<10)
		cout<<'0'<<b;
	else
		cout<<b;
	return 0;
}

大象喝水

题目描述

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

输入格式

输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深 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

代码

#include
using namespace std;
int main()
{
	const double x=3.1415926;
	int r,h,tiji,sum=0;
	cin>>h>>r;
	tiji=x*r*r*h;
	sum=int(20000/tiji+1);
	cout<<sum;
	return 0;
}

小鱼的游泳时间

题目描述

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

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

代码

#include 
using namespace std;
int main() {
	int a,b,c,d;
	int e,f;
	int shijian;
	cin>>a>>b>>c>>d;
	shijian = (c*60+d)-(a*60+b);
	e = shijian/60;
	f = shijian%60;
	cout<<e<<' '<<f;
	return 0;
}

小玉买文具

题目描述

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

代码

#include
using namespace std;
int main()
{
	int a,b;
	cin>>a>>b;
	cout<<int((a+b*0.1)/1.9); 
	return 0;
}


[NOIP2017 普及组] 成绩

题目背景

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 的整数倍。

代码

#include
using namespace std;
int main()
{
  int A,B,C,sxm;
  cin>>A>>B>>C;
  sxm=A*0.2+B*0.3+C*0.5;
  cout<<sxm<<endl;
  return 0;
}

你可能感兴趣的:(C++,c++,算法)