今天继续来讲分支结构的题:
首先第一道题P1046 [NOIP2005 普及组] 陶陶摘苹果
题目
题目描述
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知 1010 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入格式
输入包括两行数据。第一行包含 101个 100到 200 之间(包括 100 和 200 )的整数(以厘米为单位)分别表示 10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 到 120 之间(包含 100 和 120 )的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出格式
输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入输出样例
输入 #1
100 200 150 140 129 134 167 198 200 111 110
输出 #1
5
说明/提示
【题目来源】
NOIP 2005 普及组第一题
这道题说实话是一道数学题,定义一个总和,每次直接边输入边判断陶陶的身高加上凳子的高度,如果陶陶的身高加上凳子的高度>=苹果的高度,那么就能摘,总和加一。
正确代码:
#include<bits/stdc++.h>
using namespace std;
int a[10];
int main(){
int b;//淘淘手+身体的高度
int c=0;
for(int i=0;i<10;i++){
cin>>a[i];//读入苹果的高度
}
cin>>b;//输入淘淘手+身体的高度
for(int n=0;n<10;n++){
if(a[n]<=(b+30)){//进行判断,上面已经讲过,不需多讲
c++;//总和++
}
}
cout<<c;//输出总和
return 0;
}
好了废话不多说第二题:P5713 【深基3.例5】洛谷团队系统
这道题跟淘淘摘苹果乍眼一看好像哦,先上题
题目描述
在洛谷上使用团队系统非常方便的添加自己的题目。如果在自己的电脑上配置题目和测试数据,每题需要花费时间 5 分钟;而在洛谷团队中上传私有题目,每题只需要花费 3 分钟,但是上传题目之前还需要一次性花费 11 分钟创建与配置团队。现在要配置 n(n\le100)n(n≤100) 道题目,如果本地配置花费的总时间短,请输出 Local
,否则输出 Luogu
。
输入格式
无
输出格式
无
输入输出样例
输入 #1
2
输出 #1
Local
输入 #2
50
输出 #2
Luogu
这道题我的思路是:把两个都求出来,在进行比较就行。(题中没有明确说明有团队创题和个人时间相等的情况,所以我们把它忽略掉)
#include<iostream>
using namespace std;
int main(){
int a,l=0,lu=0;cin>>a;//l:个人创建题目,lu:团队创建题目
l=a*5;lu=11+a*3;//按题中所说明的计算方法计算出各自的时间
if(l<lu) cout<<"Local";
else cout<<"Luogu";
/*
剩下行都是进行判断的语句
*/
return 0;
}
好的我们要讲分支结构的最后一道题了,这道题讲完我们就不讲了,如果分支有问题的可以私聊我要代码
好的第三道题就是:P4414 [COCI2006-2007#2] ABC
题目描述
You will be given three integers A, B and C. The numbers will not be given in that exact order, but we do know that A is less than B and B less than C. In order to make for a more pleasant viewing, we want to rearrange them in the given order.
输入格式
The first line contains three positive integers A, B and C, not necessarily in that order. All three numbers will be less than or equal to 100. The second line contains three uppercase letters 'A', 'B' and 'C' (with no spaces between them) representing the desired order.
输出格式
Output the A, B and C in the desired order on a single line, separated by single spaces.
题意翻译
【题目描述】
三个整数分别为 A,B,C。这三个数字不会按照这样的顺序给你,但它们始终满足条件:A < B < <C。为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。
【输入格式】
第一行包含三个正整数 A,B,C,不一定是按这个顺序。这三个数字都小于或等于 100。第二行包含三个大写字母 A、B 和 C(它们之间没有空格)表示所需的顺序。
【输出格式】
在一行中输出 A,B 和 C,用一个 (空格)隔开。
感谢 @smartzzh 提供的翻译
输入输出样例
输入 #1
1 5 3 ABC
输出 #1
1 3 5
输入 #2
6 4 2 CAB
输出 #2
6 2 4
唉这道题就非常的nice,这个题直接利用变量,数组实现排好顺序的代码(我可以用swap我不用,我就是玩),之后再次输出就行啦!
#include<bits/stdc++.h>
using namespace std;
int a[4],t;
char n;
int main(){
cin>>a[1]>>a[2]>>a[3];
scanf("\n");
//接下来要开始交换了
if(a[2]<a[1]) t=a[2],a[2]=a[1],a[1]=t;
if(a[3]<a[2]) t=a[3],a[3]=a[2],a[2]=t;
if(a[2]<a[1]) t=a[2],a[2]=a[1],a[1]=t;
//输入开始
for(int i=1;i<=3;i++){
cin>>n;
if(n=='A') cout<<a[1]<<' ';
if(n=='B') cout<<a[2]<<' ';
if(n=='C') cout<<a[3]<<' ';
}
return 0;
}
好的下期我们将会讲洛谷题单讲解系列:③【入门3】循环结构(1),期待你的关注,我们下期再见,拜拜!