蓝桥杯准备 【入门2】分支结构
P5709 【深基2.习6】Apples Prologue / 苹果和虫子
题目描述
小 B 喜欢吃苹果。她现在有 mm(1≤m≤100)个苹果,吃完一个苹果需要花费 tt(0≤t≤100)分钟,吃完一个后立刻开始吃下一个。现在时间过去了 ss(1≤s≤10000)分钟,请问她还有几个完整的苹果?
输入格式
输入三个非负整数表示 m,t,s。
输出格式
输出一个整数表示答案。
代码:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
if(c!=0&&b!=0)//注意点1
{
int x=ceil(1.0*c/b);
cout<<((a-x)>0?(a-x):0)<<endl;
}
else if(b==0)//注意点2
{
cout<<0<<endl;
}
else//注意点3
{
cout<<a<<endl;
}
return 0;
}
注意点
- b是除数,不能为0,且当c不为0时,可以算出c分钟内吃的个数,用ceil函数向上取整,除去吃了不到一整个的情况。采用三目运算,在(a-x)和0之间取最大,避免输入为负数的情况。
- b为0时,表示在0分钟吃完水果,那输入一定是0。
- 其他情况(c==0),吃的个数为0,输出总的水果数。
P1424 小鱼的航程(改进版)
题目描述
有一只小鱼,它平日每天游泳 250 公里,周末休息(实行双休日),假设从周 x 开始算起,过了 n 天以后,小鱼一共累计游泳了多少公里呢?
输入格式
输入两个正整数 x,n,表示从周 x 算起,经过 n 天。
输出格式
输出一个整数,表示小鱼累计游泳了多少公里。
思路
一直在找x+n的关系,超级麻烦
直接跳过周六和周日就行√
#include<iostream>
using namespace std;
int main()
{
int x,y;
cin>>x>>y;
int sum=0;
for(int i=x;i<=x+y-1;i++)
{
if(i%7==6||i%7==0)//跳过周六和周日
{
continue;
}
sum+=250;
}
cout<<sum<<endl;
return 0;
}
注意点
i<=x+y-1,是从周x开始(包括周x)所以要减一
例:从周三开始,经过七天,此时工作时间是周三,周四,周五,周六,周日,周一,周二
实际是i取3,4,5,6,7,8,9
P1055 [NOIP2008 普及组] ISBN 号码
题目描述
P1055 [NOIP2008 普及组] ISBN 号码 - 洛谷 | 计算机科学教育新生态https://www.luogu.com.cn/problem/P1055
代码
#include<iostream>
using namespace std;
int main()
{
string str;
cin>>str;
int sum=0;
int n=1;
int e=str.size();
for(int i=0;i<e-1;i++)
{
if(str[i]>='0'&&str[i]<='9')
{
sum+=n*(str[i]-'0');
n++;
}
}
int x=sum%11;
char ch=x+'0';
if(x==10)
{
ch='X';
}
if(str[12]==ch)
{
cout<<"Right"<<endl;
}
else
{
for(int i=0;i<e-1;i++)
{
cout<<str[i];
}
cout<<ch<<endl;
}
return 0;
}
注意点
数字转字符
例 int x=20;
cout<<x-'0'<<endl;//输出为字符