加法检测器
时间限制:1s 空间限制:256M
题目描述
Maoge在教小Maoge加法,他想计算出小Maoge加法的准确度如何,但是因为题目太多了,他算不出来,所以找到了你。
输入三个数,a,b,c, 前两个数为加数,第三个数为小Maoge的答案。
如果小Maoge算的答案和正确答案的差值在正负10(不包括10)以内,就输出“Good”。
如果在10~20(包括10不包括20)之间,就输出“not bad”,否则输出“QwQ”。(不输出引号)
输入格式
一行三个数a,b,c,分别表示两个加数和小Maoge算出来的答案(a,b,c在0~10000之间)。
输出格式
一行一个字符串
样例输入
12 35 37
样例输出
not bad
#include <stdio.h>
#include <math.h>
int main(){
double add1,add2,res;
scanf("%lf%lf%lf",&add1,&add2,&res);
if(fabs(add1+add2-res)<10){
printf("Good");
}else if(fabs(add1+add2-res)<20){
printf("not bad");
}else{
printf("QwQ");
}
return 0;
}
判断闰年
时间:0.2s 空间:32M
题目描述:
判断一个整数n是否是闰年
输入格式:
输入一个整数n
输出格式:
是闰年输出"yes" 否则输出"no"
样例输入1:
2000样例输出1:
yes样例输入2:
1900样例输出2:
no约定:
1<=n<=2018
提示:
四年一闰,百年不闰,四百年再闰。
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
if((n%4==0&&n%100!=0)||n%400==0){
printf("yes");
}else{
printf("no");
}
return 0;
}
水仙花数
题目描述:
给定一个整数 n,判断其是否为水仙花数。 三个数 a(百位)、b(十位)、c(个位),若满足 a3+b3+c3=abc (abc 为该数本身) ,则称 n 为水仙花数。
输入格式:
一行一个整数 n
输出格式:
若是,输出“YES”,若否,输出“NO”
样例输入:
153样例输出:
YES时间限制:
1000
空间限制:
65536
#include <stdio.h>
#include <math.h>
int main(){
int n;
scanf("%d",&n);
if(n<100||n>999){
printf("NO");
return 0;
}
if(pow(n/100,3)+pow(n%10,3)+pow(n/10%10,3)==n){
printf("YES");
}else{
printf("NO");
}
return 0;
}
maoge的数学测试
提交(Submit)
题目描述:
Maoge 在他的数学测试中遇到了一个他认为很难的问题。这是一个关于分段函数的问题。
这个函数描述如下:
给定一个x, 请计算相应的y值.
输入:
输入一个整数x (0<=x<=20).
输出:
一个浮点数y的值,代表函数的计算答案,保留两位小数.
样例输入:
3样例输出:
10.00
#include <stdio.h>
#include <math.h>
int main(){
int x;
double res;
scanf("%d",&x);
if(x<2){
res=(double)x;
}else if(x<6){
res=(double)(pow(x,2)+1);
}else if(x<10){
res=(double)(sqrt(x+1));
}else{
res=1.0/(x+1);
}
printf("%.2f",res);
return 0;
}
三数中最大和最小
时间:1s 空间:256M
题目描述:
输入三个数,输出最大数,最小数
输入格式:
输入一行,包含三个整数a,b,c
输出格式:
输出两行,第一行输出最大数,第二行输出最小数。具体格式见样例输出。
样例输入:
1 2 3样例输出:
The maximum number is : 3 The minimum number is : 1约定:
1<=a,b,c<=1000000
提示:
#include <stdio.h>
int main(){
int a[3],i;
for(i=0;i<3;i++){
scanf("%d",&a[i]);
}
int max=a[0],min=a[0];
for(i=1;i<3;i++){
if(max<a[i]){
max=a[i];
}
if(min>a[i]){
min=a[i];
}
}
printf("The maximum number is : %d\n",max);
printf("The minimum number is : %d",min);
return 0;
}
买房子
时间:1s 空间:256M
题目描述:
马克思姆想要在一座大房子里面买一套公寓套房,已知有n个套房排成一排,其中有k套房已经被人住了。马克思姆喜欢串门,所以他想要住旁边有人住的房子。我们规定一套房子如果是好房子,那么相邻的房子中至少有一个房子已经有了人住了。但是马克思姆只知道有k个房子有人住了,他并不知道具体哪k个房子住了人。帮助马克思姆算出剩下的房子中,最少有几个好房子,最多有几个好房子。
输入格式:
两个整数n,k
输出格式:
输出两个整数
样例输入1:
6 3样例输出1:
1 3样例输入2:
6 2样例输出2:
1 4样例输入3:
6 0样例输出3:
0 0约定:
1<=n<=109,0<=k<=n
提示:
#include <stdio.h>
int main() {
int n, k, max, min;
scanf("%d %d", &n, &k);
min = (k != 0 && n > k) ? 1 : 0;
if(n/3>=k){
max=2*k>=n?n-k:2*k;
}else if(n/2<k){
max=n-k;
}else{
max=k;
}
printf("%d %d\n", min, max);
return 0;
}
条件-爱丽丝和鲍勃
提交(Submit)
时间:1s 空间:256M
题目描述:
给一张长为a,宽为b的桌子。设有无数张半径为r的圆形纸片。有两个人爱丽丝和鲍勃在桌子上放纸片,之前已放好的纸片不能挪动位置,纸片在放的时候不能相交但可以外切且不能超过桌子的边界,谁放不了谁就输了。问先放的人是否一定能赢,若是输出“Alice win”,否则输出“Bob win”。
输入格式:
输入一行,包含三个整数a,b,r
输出格式:
输出一行,如果Alice能赢输出“Alice win”,否则输出“Bob win”。
样例输入1:
5 5 2
样例输出1:
Alice win
样例输入2:
6 7 4
样例输出2:
Bob win
约定:
1<=a,b,r<=100
提示:
第一个样例,第一个人放了一个圆之后,第二个人就不能放了
第二个样例,第一个人连一个圆都放不下
#include <stdio.h>
int main(){
int a,b,r;
scanf("%d%d%d",&a,&b,&r);
if(a<2*r||b<2*r){
printf("Bob win");
}else{
if ((a % (2 * r) == 0) && (b % (2 * r) == 0)) {
printf("Bob win");
} else {
printf("Alice win");
}
}
}
约会
时间:1s 空间:256M
题目描述:
小蓝准备去和小红约会,小蓝和小红居住在一个平面直角坐标系中,小蓝的家在(0,0)位置,小红的家在(a,b)位置,小蓝每一步可以往上下左右中的任意一个方向移动一个单位,换句话说,他可以从(x,y)走 到(x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1).中的一个位置。
不幸的是小蓝的方向感比较差,所以他每次随机选择了一个方向走出去,有时候可能走着走着走回了自己的家,有时候可能已经走到了小红的家还没有发现,又继续走。
幸运的是,在一个月黑风高的夜晚,他终于走到了小红的家,他高兴地跟小红说,从我家到你家我走了step步,现在你帮帮小红计算一下,从小蓝的家走到小红的家有没有可能走step步
输入格式:
输入一行,包含三个整数,a,b,step
输出格式:
输出一行,如果可能输出“Yes”,否则输出“No”
样例输入1:
5 5 11
样例输出1:
No
样例输入2:
10 15 25
样例输出2:
Yes
样例输入3:
0 5 1
样例输出3:
No
样例输入4:
0 1 3
样例输出4:
Yes
约定:
−10000<=a,b<=10000,1<=step<=2∗10000
提示:
第四个样例:(0, 0) -> (0, 1) -> (0, 2)->(0,1)走了三步。
#include <stdio.h>
#include <math.h>
int main() {
int a, b,step;
scanf("%d%d%d", &a, &b, &step);
int min = (int)fabs(a) + (int)fabs(b);
if ((step - min) % 2 != 0 || step < min ) {
printf("No");
} else {
printf("Yes");
}
return 0;
}
小帅打电话
时间:1s 空间:256M
题目描述:
“喂,CCF么?”
![]()
“您好,这里是CCF”
“哦,再见”
“....”
学军中学小帅给CCF打了一通奇怪的电话。因为他发现了前三分钟的电话费太便宜了,于是他准备用完三分钟挂电话,接着打。
CCF一脸懵逼。。。
打完电话,小帅回到了学军机房,他开始思考刚才碰到的算法问题。
假如通话时间小于等于3分钟话费都是base块钱,大于三分钟以后每分钟按above块钱算,你有total块钱。问你最长能打多久电话。
输入格式:
输入一行,包含三个整数base,above,total
输出格式:
输出一行,包含一个整数
样例输入:
2 1 4样例输出:
6约定:
1<=base,above<=100,1<=total<=10000
提示:
#include <stdio.h>
int main() {
int base, above,total;
scanf("%d%d%d", &base, &above, &total);
total -= base;
if(total<0){
printf("0");
return 0;
}else if(total==0){
printf("3");
return 0;
}
int sum1=3,sum2=3;
sum1+=total/above;
sum2+=3*(total/base);
printf("%d",sum1>sum2?sum1:sum2);
return 0;
}