题目描述
请根据邮件的重量和用户选择是否加急计算邮费。计算规则:
-
重量在 10001000 以内(包括),基本费 88 元;
-
超过 10001000 克的部分,每 500500 克加收超重费 44 元,不足 500500 克部分按 500500 克计算;
-
如果用户选择加急,多收 55 元。
输入格式
一行,包含一个正整数 �x 和一个字符 c(y
或 n
),之间用一个空格隔开,分别表示重量和是否加急。
如果字符是 y
,说明选择加急;如果字符是 n
,说明不加急。
输出格式
输出一行一个正整数,表示邮费。
输入输出样例
输入 #1复制
1200 y
输出 #1复制
17
说明/提示
对于100%数据 1≤�≤1061≤x≤106
代码如下:
#include<stdio.h>
int a;
char b;
int sum;
int main(){
if(a<=1000){
sum+=8;
}
else{
sum+=8;
a-=1000;
sum+=a/500*4;
if(a%500!=0){
sum+=4;
}
}
if(b=='y'){
sum+=5;
}
return 0;
}
题目描述
假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供 �x 亿人生活 �a 年,或供 �y 亿人生活 �b 年。
为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?
输入格式
一行,包括四个正整数 �,�,�,�x,a,y,b,两个整数之间用单个空格隔开。
输出格式
一个实数 �z,表示地球最多养活 �z 亿人,舍入到小数点后两位。
输入输出样例
输入 #1复制
110 90 90 210
输出 #1复制
75.00
说明/提示
对于 100%100% 的数据,1≤�,�,�,�≤1041≤x,a,y,b≤104,�>�x>y,�<�a<b,��<��ax<by
#include <stdio.h>
int main()
{
int a, x, b, y;
printf("%.2f", double(b*y-a*x)/(b-a));
return 0;
}
这个题重点在于对题目的理解和计算:
设每亿人一年用去资源为 11,设总资源为 �w,自变量时间为 �t 年,�=��+�w=kt+r。 由题意可得:
��=��+� ��=��+�ax=ka+r by=kb+r
两式相减,得:
��−��=(�−�)�by−ax=(b−a)k
即
�=��−���−�k=b−aby−ax
即每年新生资源为 ��−���−�b−aby−ax。 既然要实现可持续发展,那么消耗速度就要 ≤≤ 资源再生速度,最多能养活 ��−���−�b−aby−ax 亿人。
为什么不写成 ��−���−�a−bax−by 呢?因为数据满足 �<�a<b,��<��ax<by。
注意除法不是
题目描述
输入一个双精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。
输入格式
一个双精度浮点数 �x。
输出格式
一个整数,即向零舍入到整数的结果。
输入输出样例
输入 #1复制
2.3
输出 #1复制
2
说明/提示
−1015≤�≤1015−1015≤x≤1015。
整除,要用强制类型转换(或者声明 double a, b, x, y;
)!
#include<stdio.h>
int main()
{
double a;
scanf("%lf",&a);
printf("%lld",(long long)a);
return 0;
}
注意:因为−1015≤x≤1015 ,所以开 long long
。
(以上是我觉得这周刷题得到的知识和见解,题虽不复杂,但是坑很多)