记录洛谷刷题QAQ
一、小玉家的电费
题目描述
夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了。小玉家今天收到了一份电费通知单。小玉看到上面写:据闽价电 [2006]27 号规定,月用电量在 150 150 150 千瓦时及以下部分按每千瓦时 0.4463 0.4463 0.4463 元执行,月用电量在 151 ∼ 400 151\sim 400 151∼400 千瓦时的部分按每千瓦时 0.4663 0.4663 0.4663 元执行,月用电量在 401 401 401 千瓦时及以上部分按每千瓦时 0.5663 0.5663 0.5663 元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢。请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少。
输入格式
输入一个正整数,表示用电总计(单位以千瓦时计),不超过 10000 10000 10000。
输出格式
输出一个数,保留到小数点后 1 1 1 位(单位以元计,保留到小数点后 1 1 1 位)。
样例 #1
样例输入 #1
267
样例输出 #1
121.5
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int num;
float sum;
while(scanf("%d",&num)!=EOF){
if(num>=0&&num<=150){
sum = num*0.4463;
}
else if(num>150&&num<400){
sum = (num - 150)*0.4663+66.945;
}
else if(num>=400){
sum = (num - 400)*0.5663+66.945+116.575;
}
printf("%.1f",sum);
}
return 0;
}
二、小玉在游泳
题目描述
小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游 2 2 2 米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的 98 % 98\% 98%。现在小玉想知道,如果要游到距离 x x x 米的地方,她需要游多少步呢。请你编程解决这个问题。
输入格式
输入一个实数 s s s(单位:米),表示要游的目标距离。
输出格式
输出一个整数,表示小玉一共需要游多少步。
样例 #1
样例输入 #1
4.3
样例输出 #1
3
提示
数据保证, 0 ≤ s ≤ 100 0 \leq s \leq 100 0≤s≤100,且 s s s 小数点后最多只有一位。
代码如下:
#include<stdio.h>
int main()
{
float a,b=2,k=2;/*距离可能非整*/
int i=1;/*由于数据弱就int即可*/
scanf("%f",&a);/*输入目标*/
for(i=1;i<=99999999;i++)
{if(k>a) break;/*判断是否游到目标*/
else
{
b=b*0.98;/*每步能游的距离*/
k=b+k;/*每步结束后的已游总距离*/
}}
printf("%d",i);/*输出步数*/
return 0;
}
三、小鱼的航程(改进版)
题目背景
题目描述
有一只小鱼,它平日每天游泳 250 250 250 公里,周末休息(实行双休日),假设从周 x x x 开始算起,过了 n n n 天以后,小鱼一共累计游泳了多少公里呢?
输入格式
输入两个正整数 x , n x,n x,n,表示从周 x x x 算起,经过 n n n 天。
输出格式
输出一个整数,表示小鱼累计游泳了多少公里。
样例 #1
样例输入 #1
3 10
样例输出 #1
2000
提示
数据保证, 1 ≤ x ≤ 7 1\le x \le 7 1≤x≤7, 1 ≤ n ≤ 1 0 6 1 \le n\le 10^6 1≤n≤106。
代码如下:
#include <stdio.h>
int main()
{
int i, x, n;
long long sum = 0;
while(scanf("%d%d", &x, &n)!=EOF){
for (i=x; i<x+n; i++){
if(i%7==0 || (i+1)%7==0)
continue;
else sum += 250;
}
printf("%lld", sum);
}
return 0;
}
四、小鱼的游泳时间
题目描述
伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。
这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按 24 24 24 小时制计算),它发现自己从 a a a 时 b b b 分一直游泳到当天的 c c c 时 d d d 分,请你帮小鱼计算一下,它这天一共游了多少时间呢?
小鱼游的好辛苦呀,你可不要算错了哦。
输入格式
一行内输入 4 4 4 个整数,以空格隔开,分别表示题目中的 a , b , c , d a, b, c, d a,b,c,d。
输出格式
一行内输出 2 2 2 个整数 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 0≤a,c≤24, 0 ≤ b , d ≤ 60 0\le b,d \le 60 0≤b,d≤60,且结束时间一定晚于开始时间。
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int a, b, c, d;
int n, m;
while(scanf("%d%d%d%d",&a,&b,&c,&d)!=EOF){
int time1 = a*60+b;
int time2 = c*60+d;
int time = time2 - time1;
n = time/60;
m = time%60;
printf("%d %d",n,m);
}
return 0;
}
五、小鱼会有危险吗
题目描述
有一次,小鱼要从 A 处沿直线往右边游,小鱼第一秒可以游
7
7
7 米,从第二秒开始每秒游的距离只有前一秒的
98
%
98\%
98%。有个极其邪恶的猎人在距离 A 处右边
s
s
s 米的地方,安装了一个隐蔽的探测器,探测器左右
x
x
x 米之内是探测范围。一旦小鱼进入探测器的范围,探测器就会在这一秒结束时把信号传递给那个猎人,猎人在一秒后就要对探测器范围内的水域进行抓捕,这时如果小鱼还在这范围内就危险了。也就是说小鱼一旦进入探测器范围,如果能在下
1
1
1 秒的时间内马上游出探测器的范围,还是安全的。现在给出
s
s
s 和
x
x
x 的数据,请你判断小鱼会不会有危险?如果有危险输出 y
,没有危险输出 n
。
输入格式
一行内输入两个实数,用空格分隔,表示 s s s 和 x x x。
输出格式
一行内输出’y’或者’n’表示小鱼是否会有危险。
样例 #1
样例输入 #1
14 1
样例输出 #1
n
提示
数据规模与约定
对于 100 % 100\% 100% 的数据,保证 1 ≤ s , x ≤ 100 1 \leq s,x\le100 1≤s,x≤100,小数点后最多有 6 6 6 位小数。
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
float step = 0;
float len = 7.0;
int distence, scale;
scanf("%d%d",&distence,&scale);
while(step < distence - scale){
step = len + step;
len = len * 0.98;
}
if(step + len <= distence + scale){
printf("y");
}
else if(step + len > distence + scale){
printf("n");
}
return 0;
}