我是靠谱客的博主 哭泣热狗,最近开发中收集的这篇文章主要介绍XJOI一级五段题解(g++,即C++),也可视作C++算法竞赛教程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

    • [Problem 9305](https://xjoi.net/problem/9305) 加法检测器
      • 一 题目内容
      • 二 新知识点
      • 三 思路
      • 四 AC代码
    • [Problem 3537](https://xjoi.net/problem/3537) 判断闰年
      • 一 题目内容
      • 二 新知识点
      • 三 思路
      • 四 AC代码
    • [Problem 3903](https://xjoi.net/problem/3903) 水仙花数
      • 一 题目内容
      • 二 新知识点
      • 三 思路
      • 四 AC代码
    • [Problem 9304](https://xjoi.net/problem/9304) maoge的数学测试
      • 二 新知识点
        • 2.1 在一行内写下一句if(if-else if-else,if-else if,if-else)语句
      • 三 思路
      • 四 AC代码
    • [Problem 1111](https://xjoi.net/problem/1111) 三数中最大和最小
      • 一 题目内容
      • 二 新知识点
      • 三 思路
      • 四 AC代码
    • [Problem 9873](https://xjoi.net/problem/9873) 从大到小
      • 一 题目内容
      • 二 新知识点
      • 三 思路
      • 四 AC代码

Problem 9305 加法检测器

一 题目内容

【题目描述】
maoge在教小Maoge加法,他想计算出小Maoge加法的准确度如何,但是因为题目太多了,他算不出来,所以找到了你。
【数据格式】
输入一行三个数a,b,c,分别表示两个加数和小Maoge算出来的答案(a,b,c在0~10000之间)。
输出一行一个字符串。
如果小Maoge算的答案和正确答案的差值在正负10(不包括10)以内,就输出“Good”。
如果在10~20(包括10不包括20)之间,就输出“not bad”
否则输出“QwQ”。
样例输入:
12 35 37
样例输出:
not bad

二 新知识点

本题没有新知识点。

三 思路

依题意处理并判断即可。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,c;
    cin>>a>>b>>c;
    if(abs(a+b-c)<10){
        cout<<"Good";
    }else if(abs(a+b-c)>=10&&abs(a+b-c)<20){
        cout<<"not bad";
    }else{
        cout<<"QwQ";
    }
    return 0;
}

Problem 3537 判断闰年

一 题目内容

时间:0.2s 空间:32M
题目描述:
判断一个整数 n n n是否是闰年
输入格式:
输入一个整数 n n n
输出格式:
是闰年输出"yes" 否则输出"no"
样例输入1:
2000 2000 2000
样例输出1:
y e s yes yes
样例输入2:
1900 1900 1900
样例输出2:
n o no no
约定:
1 ≤ n ≤ 2018 1 leq n leq 2018 1n2018

二 新知识点

本题没有新知识点。

三 思路

闰年的判断法则是:四年一闰,一百年不闰,四百年才闰。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a;
    cin>>a;
    if(a%4!=0){
        cout<<"no";
    }else if(a%4==0&&a%100!=0){
        cout<<"yes";
    }else if(a%4==0&&a%400!=0){
        cout<<"no";
    }else{
        cout<<"yes";
    }
    return 0;
}

Problem 3903 水仙花数

一 题目内容

题目描述:
给定一个整数 n n n,判断其是否为水仙花数。
三个数 a a a(百位)、 b b b(十位)、 c c c(个位),若满足 a 3 + b 3 + c 3 = a b c a^3+b^3+c^3=abc a3+b3+c3=abc ( a b c abc abc为该数本身) ,则称 n n n为水仙花数。
输入格式:
一行一个整数 n n n
输出格式:
若是,输出“YES”,若否,输出“NO”
样例输入:
153 153 153
样例输出:
Y E S YES YES
时间限制:
1000 1000 1000ms
空间限制:
65536 65536 65536KB

二 新知识点

本题没有新知识点。

三 思路

还记得 Problem 3570 求个位 与 Problem 3571 求十位数 吗?(题解链接在这里)用 n / 10 n/10 n/10可分离出个位,用 n / 10 % 10 n/10%10 n/10%10可以分离出十位。至于百位,由于 n n n是三位数,所以直接用 n / 100 n/100 n/100即可分离出百位。但要注意的是, a 3 a^3 a3不能直接写作“a^3”,而是要写作 a ∗ a ∗ a a*a*a aaa

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a,b,c;
    cin>>n;
    //-------------------------分离出个位、十位、百位-------------------------
    c=n%10;
    b=n/10%10;
    a=n/100;
    if(a*a*a+b*b*b+c*c*c==n){
        cout<<"YES";
    }else{
        cout<<"NO";
    }
    return 0;
}

Problem 9304 maoge的数学测试

题目描述:
Maoge在他的数学测试中遇到了一个他认为很难的问题。这是一个关于分段函数的问题。
这个函数描述如下:
y = { x x < 2 x 2 + 1 2 ≤ x < 6 x + 1 6 ≤ x < 10 1 x + 1 10 ≤ x y=begin{cases} x & x < 2 \ x^2+1 & 2 leq x < 6 \ sqrt{x+1} & 6 leq x < 10 \ frac{1}{x+1} & 10 leq x end{cases} y=xx2+1x+1 x+11x<22x<66x<1010x
给定一个 x x x, 请计算相应的 y y y值.
输入:
输入一个整数 x x x( 0 ≤ x ≤ 20 0 leq x leq 20 0x20).
输出:
一个浮点数 y y y的值,代表函数的计算答案,保留两位小数.
样例输入:
3 3 3
样例输出:
10.00 10.00 10.00

二 新知识点

2.1 在一行内写下一句if(if-else if-else,if-else if,if-else)语句

有些时候,我们会在写if语句时抱怨:if语句大大增加了代码的行数,让调试代码变得好费劲!这时,如果if语句内只有一行代码,就可以这么写:

if(条件)语句

这与

if(条件){
    语句
}

效果相同。
当然,if-else if-else,if-else if,if-else语句也可以在一行内写下,如下所示:

//if-else if-else语句
if(条件1)语句1
else if(条件2)语句2
else if(条件3)语句3
else if(条件4)语句4
...
...
...
else if(条件n-1)语句n-1
else 语句n

//if-else if语句
if(条件1)语句1
else if(条件2)语句2
else if(条件3)语句3
else if(条件4)语句4
...
...
...
else if(条件n)语句n

//if-else 语句
if(条件)语句1
else 语句2

它们分别与下列语句效果相同:

//if-else if-else语句
if(条件1){
	语句1
}else if(条件2){
	语句2
}else if(条件3){
	语句3
}else if(条件4){
	语句4
}...{
...
...
...
}else if(条件n-1){
	语句n-1
}else{
	语句n
}

//if-else if语句
if(条件1){
	语句1
}else if(条件2){
	语句2
}else if(条件3){
	语句3
}else if(条件4){
	语句4
}...{
...
...
...
}else if(条件n){
	语句n
}
//if-else语句
if(条件){
	语句1
}else{
	语句2
}

需要注意的是,只能在每条语句都只有一行的情况下这样写。

三 思路

根据题意直接判断并输出即可。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int x;
    cin>>x;
    if(x<2)cout<<x<<".00";
    if(x>=2&&x<6)cout<<x*x+1<<".00";
    if(x>=6&&x<10)printf("%.2lf",sqrt(x+1));
    if(x>=10)printf("%.2lf",1.0/(x+1));
    return 0;
}

Problem 1111 三数中最大和最小

一 题目内容

时间:1s 空间:256M
题目描述:
输入三个数,输出最大数,最小数
输入格式:
输入一行,包含三个整数 a , b , c a,b,c a,b,c
输出格式:
输出两行,第一行输出最大数,第二行输出最小数。具体格式见样例输出。
样例输入:
1 1 1 2 2 2 3 3 3
样例输出:
T h e The The m a x i m u m maximum maximum n u m b e r number number i s is is : : : 3 3 3
T h e The The m i n i m u m minimum minimum n u m b e r number number i s is is : : : 1 1 1
约定:
1 ≤ a , b , c ≤ 1000000 1 leq a,b,c leq 1000000 1a,b,c1000000

二 新知识点

本题没有新知识点。

三 思路

先读入数,再依次求最大值和最小值,最后按格式输出。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,c,max=-1,min=99999999; //由于a,b,c不超过1000000,所以把min设成99999999是可以正常更新min的值的
    cin>>a>>b>>c;
    cout<<"The maximum number is : ";
    if(a>max)max=a;
    if(b>max)max=b;
    if(c>max)max=c;
    cout<<max<<endl<<"The minimum number is : ";
    if(a<min)min=a;
    if(b<min)min=b;
    if(c<min)min=c;
    cout<<min;
}

Problem 9873 从大到小

一 题目内容

时间:1s 空间:128M
题目描述:
将输入的3个数,从大到小输出。
输入格式:
仅一行,包含3个整数 a , b , c a,b,c a,b,c,以空格间隔。
输出格式:
仅一行,包含3个整数 a , b , c a,b,c a,b,c,以空格间隔。
样例输入1:
1 1 1 2 2 2 3 3 3
样例输出1:
3 3 3 2 2 2 1 1 1
约定:
0 ≤ a , b , c ≤ 1000 0 leq a,b,c leq 1000 0a,b,c1000,且 a , b , c a,b,c a,b,c互不相等。

二 新知识点

本题没有新知识点。

三 思路

先找出最大数和最小数,再依据“ a , b , c a,b,c a,b,c互不相等”找出中间数,最后依次输出即可。

四 AC代码

#include<iostream>
using namespace std;
int main(){
    int a,b,c,max=-1,min=99999999,o; //o是中间数(说实话,这个变量名是我乱取的)
    cin>>a>>b>>c;
    if(a>max)max=a;
    if(b>max)max=b;
    if(c>max)max=c;
    if(a<min)min=a;
    if(b<min)min=b;
    if(c<min)min=c;
    if(a!=max&&a!=min)o=a;
    if(b!=max&&b!=min)o=b;
    if(c!=max&&c!=min)o=c;
    cout<<max<<' '<<o<<' '<<min;
}

最后

以上就是哭泣热狗为你收集整理的XJOI一级五段题解(g++,即C++),也可视作C++算法竞赛教程的全部内容,希望文章能够帮你解决XJOI一级五段题解(g++,即C++),也可视作C++算法竞赛教程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部