2023-2024-1高级语言程序设计第1次月考
7-1-1 计算摄氏温度
给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F−32)/9。题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出一个华氏温度。
输出格式:
在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。
输入样例:
150
输出样例:
Celsius = 65
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;printf("Celsius = %d",5*(n-32)/9);return 0;
}
7-1-2 计算火车运行时间
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
输入格式:
输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。
输出格式:
在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
输入样例:
1201 1530
输出样例:
03:29
#include<bits/stdc++.h>
using namespace std;
int main(){int x,y;cin>>x>>y;int a,b,c;a=x/100*60+x%100;b=y/100*60+y%100;c=b-a;printf("%02d:%02d",c/60,c%60);return 0;
}
7-1-3 混合类型数据格式化输入
本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。
输入格式:
输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。
输出格式:
在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。
输入样例:
2.12 88 c 4.7
输出样例:
c 88 2.12 4.70
#include<bits/stdc++.h>
using namespace std;
int main(){double a,d;int b;char c;cin>>a>>b>>c>>d;printf("%c %d %.2f %.2f",c,b,a,d);return 0;
}
7-1-4 算术入门之加减乘除
对于输入的两个整数,按照要求输出其和差积商。
输入格式:
在一行内输入两个不超过100的非负整数a和b,中间以一个空格间隔,且保证b不为0。
输出格式:
共四行,格式是:
[a] + [b] = [a+b]
[a] - [b] = [a-b]
[a] * [b] = [a*b]
[a] / [b] = [a/b]
其中,带有方括号的内容(如[a]
、[b]
、[a+b]
等)表示相应整数或运算结果的值,在输出时要用实际的值代替。
并且:如果a能够被b整除,那么a/b应输出为整数格式,否则a/b输出为带两位小数的格式。
提示:注意表达式中的空格。
输入样例1:
6 3
输出样例1:
6 + 3 = 9
6 - 3 = 3
6 * 3 = 18
6 / 3 = 2
输入样例2:
8 6
输出样例2:
8 + 6 = 14
8 - 6 = 2
8 * 6 = 48
8 / 6 = 1.33
#include<bits/stdc++.h>
using namespace std;
int main(){int a,b;cin>>a>>b;printf("%d + %d = %d\n",a,b,a+b);printf("%d - %d = %d\n",a,b,a-b);printf("%d * %d = %d\n",a,b,a*b);if(a%b==0)printf("%d / %d = %d",a,b,a/b);else printf("%d / %d = %.2f",a,b,a*1.0/b);return 0;
}
7-1-5 求三角形面积
输入三角形的三边长,求其面积。
输入格式:
在一行中输入能够构成三角形的3个实数,3个数之间用逗号间隔。
输出格式:
对每一组输入,在一行中输出面积值,结果保留两位小数,没有附加字符。
输入样例:
3,3,3
输出样例:
3.90
#include<bits/stdc++.h>
using namespace std;
int main(){double a,b,c,x,y;char z;cin>>a>>z>>b>>z>>c;x=(a+b+c)/2;y=sqrt(x*(x-a)*(x-b)*(x-c));printf("%.2lf",y);return 0;
}
7-1-6 圆球的体积
请编写程序,输入球的半径 r (cm),计算并输出球的体积 v (cm3)。
输入格式
r
输出格式
v
要求:输出2位小数(末位四舍五入)。
输入样例
1.25
输出样例
8.18
注:π=3.1415926535897932384626...
#include<bits/stdc++.h>
using namespace std;
int main(){double r,v;cin>>r;v=4*r*r*r*3.1415926535897932384626/3;printf("%.2lf",v);return 0;
}
7-1-7 快速求和
请编写程序,输入整数 n,快速计算:
输入格式
n
输出格式
s
要求:输出 6 位小数,末位四舍五入。
输入样例1
4
输出样例1
0.800000
输入样例2
300
输出样例2
0.996678
#include<bits/stdc++.h>
using namespace std;
int main(){int n;double s;cin>>n;for(int i=1;i<=n;i++)s+=1.0/(i*(i+1));printf("%.6f",s);return 0;
}
7-1-8 圆锥的体积
请编写程序,输入圆锥的底圆半径 r (cm) 和高 h (cm),计算并输出圆锥的体积 v (cm3)。
输入格式
r 和 h
输出格式
v
要求:输出 4 位小数(末位四舍五入)。
输入样例
1.36 5.87
输出样例
11.3696
注:π=3.1415926535897932384626...
#include<bits/stdc++.h>
using namespace std;
int main(){double r,h,v;cin>>r>>h;v=3.1415926535897932384626*r*r*h/3;printf("%.4f",v);return 0;
}
7-1-9 宇宙无敌大招呼
据说所有程序员学习的第一个程序都是在屏幕上输出一句“Hello World”,跟这个世界打个招呼。作为天梯赛中的程序员,你写的程序得高级一点,要能跟任意指定的星球打招呼。
输入格式:
输入在第一行给出一个星球的名字S
,是一个由不超过7个英文字母组成的单词,以回车结束。
输出格式:
在一行中输出Hello S
,跟输入的S
星球打个招呼。
输入样例:
Mars
输出样例:
Hello Mars
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
cout<<"Hello "<<s;
return 0;
}
7-2-1 温度转换
本题要求编写程序,计算华氏温度150°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。
输入格式:
本题目没有输入。
输出格式:
按照下列格式输出
fahr = 150, celsius = 计算所得摄氏温度的整数值
#include<bits/stdc++.h>
using namespace std;
int main(){printf("fahr = 150, celsius = %d",5*(150-32)/9);return 0;
}
7-2-2 求整数均值
本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出4个整数,其间以空格分隔。
输出格式:
在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。
输入样例:
1 2 3 4
输出样例:
Sum = 10; Average = 2.5
#include<bits/stdc++.h>
using namespace std;
int main(){int a,b,c,d,s;cin>>a>>b>>c>>d;s=a+b+c+d;printf("Sum = %d; Average = %.1f",s,s*1.0/4);return 0;
}
7-2-3 计算摄氏温度
本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。
输入格式:
本题目没有输入。
输出格式:
按照下列格式输出
fahr = 100, celsius = 计算所得摄氏温度的整数值
#include<bits/stdc++.h>
using namespace std;
int main(){printf("fahr = 100, celsius = %d",5*(100-32)/9);return 0;
}
7-2-4 计算平均分
已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均成绩(结果按整型输出)。
输入格式:
本题无输入
输出格式:
按照下列格式输出结果:
math = 87, eng = 72, comp = 93, average = 计算所得的平均成绩
#include<bits/stdc++.h>
using namespace std;
int main(){printf("math = 87, eng = 72, comp = 93, average = %d",(87+72+93)/3);return 0;
}
7-2-5 将x的平方赋值给y
假设x的值为3,计算x的平方并赋值给y,分别以“y = x ∗ x”和“x ∗ x = y”的形式输出x和y的值。
输入格式:
本题无输入
输出格式:
按照下列格式输出代入x
=3的结果:
y = x * x
x * x = y
#include<bits/stdc++.h>
using namespace std;
int main(){printf("9 = 3 * 3\n3 * 3 = 9");return 0;
}
7-2-6 整数152的各位数字
本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。
输入格式:
本题无输入。
输出格式:
按照以下格式输出:
152 = 个位数字 + 十位数字*10 + 百位数字*100
#include<bits/stdc++.h>
using namespace std;
int main(){printf("152 = 2 + 5*10 + 1*100");return 0;
}
7-2-7 计算存款利息
本题目要求计算存款利息,计算公式为interest=money×(1+rate)year−money,其中interest为存款到期时的利息(税前),money是存款金额,year是存期,rate是年利率。
输入格式:
输入在一行中顺序给出三个正实数money、year和rate,以空格分隔。
输出格式:
在一行中按“interest = 利息”的格式输出,其中利息保留两位小数。
输入样例:
1000 3 0.025
输出样例:
interest = 76.89
#include<bits/stdc++.h>
using namespace std;
int main(){double m,y,r,i;cin>>m>>y>>r;i=m*pow((1+r),y)-m;printf("interest = %.2f",i);return 0;
}
7-2-8 然后是几点
有时候人们用四位数字表示一个时间,比如 1106
表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530
;0 点 30 分表示为 030
。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。
输入格式:
输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530
;0 点 30 分表示为 030
。流逝的分钟数可能超过 60,也可能是负数。
输出格式:
输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。
输入样例:
1120 110
输出样例:
1310
#include<bits/stdc++.h>
using namespace std;
int main(){int x,y;cin>>x>>y;int a,c;a=x/100*60+x%100;c=y+a;printf("%d%02d",c/60,c%60);return 0;
}
7-2-9 逆序的三位数
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
输入格式:
每个测试是一个3位的正整数。
输出格式:
输出按位逆序的数。
输入样例:
123
输出样例:
321
#include<bits/stdc++.h>
using namespace std;
int main(){int n,a,k=0;cin>>n;while(n){a=n%10;if(a)k=1;if(a||k==1)cout<<a;n=n/10;}return 0;
}
7-2-10 后天
如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。
输入格式:
输入第一行给出一个正整数D
(1 ≤ D
≤ 7),代表星期里的某一天。
输出格式:
在一行中输出D
天的后天是星期几。
输入样例:
3
输出样例:
5
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;if(n>5)n=(n+2)%7;else n=n+2;cout<<n;return 0;
}
7-2-11 交换a和b的值
交换变量a,b的值,如输入a的值为1,b的值为5,则输出a的值为5,b的值为1。
输入格式:
输入两个整数,之间用一个空格间隔。
输出格式:
在一行中按照“a=x,b=y”的格式输出,其中x和y均是原样输出,不加宽度控制。
输入样例:
1 5
输出样例:
a=5,b=1
#include<bits/stdc++.h>
using namespace std;
int main(){int a,b;cin>>a>>b;printf("a=%d,b=%d",b,a);return 0;
}
7-3-1 计算分段函数[1]
本题目要求计算下列分段函数f(x)的值:
输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。
输入样例1:
10
输出样例1:
f(10.0) = 0.1
输入样例2:
0
输出样例2:
f(0.0) = 0.0
#include<bits/stdc++.h>
using namespace std;
int main(){double x;cin>>x;if(x==0)printf("f(0.0) = 0.0");else printf("f(%.1f) = %.1f",x,1.0/x);return 0;
}
7-3-2 计算分段函数[2]
本题目要求计算下列分段函数f(x)的值:
注:可在头文件中包含math.h
,并调用sqrt
函数求平方根,调用pow
函数求幂。
输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。
输入样例1:
10
输出样例1:
f(10.00) = 3.16
输入样例2:
-0.5
输出样例2:
f(-0.50) = -2.75
#include<bits/stdc++.h>
using namespace std;
int main(){double x,y;cin>>x;if(x>=0)y=pow(x,0.5);else y=pow((x+1),2)+2*x+1/x;printf("f(%.2f) = %.2f",x,y);return 0;
}
7-3-3 阶梯电价
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。
输入格式:
输入在一行中给出某用户的月用电量(单位:千瓦时)。
输出格式:
在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。
输入样例1:
10
输出样例1:
cost = 5.30
输入样例2:
100
输出样例2:
cost = 55.50
#include<stdio.h>
int main()
{double x,cost;scanf("%lf",&x);if(x<0){printf("Invalid Value!");}else if(x>50){cost=(x-50)*0.58+50*0.53;printf("cost = %.2lf",cost);}else{ cost=0.53*x;printf("cost = %.2lf",cost);}return 0;
}
7-3-4 计算符号函数的值
对于任一整数n,符号函数sign(n)的定义如下:
请编写程序计算该函数对任一输入整数的值。
输入格式:
输入在一行中给出整数n。
输出格式:
在一行中按照格式“sign(n) = 函数值”输出该整数n对应的函数值。
输入样例1:
10
输出样例1:
sign(10) = 1
输入样例2:
0
输出样例2:
sign(0) = 0
输入样例3:
-98
输出样例3:
sign(-98) = -1
#include<bits/stdc++.h>
using namespace std;
int main(){int x,y;cin>>x;if(x>0)y=1;else if(x==0)y=0;else y=-1;printf("sign(%d) = %d",x,y);return 0;
}
7-3-5 输出闰年
输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。
输入格式:
输入在一行中给出21世纪的某个截止年份。
输出格式:
逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。
输入样例1:
2048
输出样例1:
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
输入样例2:
2000
输出样例2:
Invalid year!
#include<bits/stdc++.h>
using namespace std;
int main(){int n,i,x=0;cin>>n;if(n<=2000||n>2100)cout<<"Invalid year!";else{
for(i=2001;i<=n;i++)
{if((i%4==0&&i%100)||i%400==0){cout<<i<<endl;x=1;}
}if(x==0)cout<<"None";}return 0;
}
7-3-6 比较大小
本题要求将输入的任意3个整数从小到大输出。
输入格式:
输入在一行中给出3个整数,其间以空格分隔。
输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。
输入样例:
4 2 8
输出样例:
2->4->8
#include<bits/stdc++.h>
using namespace std;
int main(){int a[5],i;for(i=0;i<3;i++)cin>>a[i];sort(a,a+3);for(i=0;i<3;i++){cout<<a[i];if(i!=2)cout<<"->";}return 0;
}
7-3-7 高速公路超速处罚
按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
输入格式:
输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。
输出格式:
在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x%. Ticket 200”;若应吊销驾驶证,则输出“Exceed x%. License Revoked”。其中x是超速的百分比,精确到整数。
输入样例1:
65 60
输出样例1:
OK
输入样例2:
110 100
输出样例2:
Exceed 10%. Ticket 200
输入样例3:
200 120
输出样例3:
Exceed 67%. License Revoked
#include<stdio.h>
int main()
{int v,s;double x;scanf("%d %d",&v,&s);x=(v-s)*1.0/s*100;if(v*10<11*s)printf("OK");else if(v*10>=s*11&&v*10<15*s){printf("Exceed %.lf%%. Ticket 200\n",x);}elseprintf("Exceed %.lf%%. License Revoked\n",x);return 0;
}
7-3-8 出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
- 起步里程为3公里,起步费10元;
- 超起步里程后10公里内,每公里2元;
- 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
- 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
输入格式:
输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。
输出格式:
在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
输入样例1:
2.6 2
输出样例1:
10
输入样例2:
5.1 4
输出样例2:
14
输入样例3:
12.5 9
输出样例3:
34
#include<bits/stdc++.h>
using namespace std;
int main()
{double x,s;int y;cin>>x>>y;s+=y/5*2;if(x<=3)s+=10;else if(x>3&&x<=10)s=s+10+(x-3)*2;else s=s+24+(x-10)*3;printf("%.0f",s);return 0;
}
7-3-9 三角形判断
给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。
输入格式:
输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1、y1、x2、y2、x3、y3。
输出格式:
若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。
输入样例1:
4 5 6 9 7 8
输出样例1:
L = 10.13, A = 3.00
输入样例2:
4 6 8 12 12 18
输出样例2:
Impossible
#include <stdio.h>
#include<math.h>
int main()
{double x1,y1,x2,y2,x3,y3,d1,d2,d3,l,area,s;scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);//输入三个顶点的坐标d1=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); //计算顶点1与顶点2之间的边长d2=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)); //计算顶点1与顶点3之间的边长d3=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));//计算顶点2与顶点3之间的边长if(d1+d2>d3&&fabs(d1-d2)<d3) //三角形条件,两边之和大于第三边,两边之差小于第三边{l=d1+d2+d3; //周长s=(d1+d2+d3)/2; area=sqrt(s*(s-d1)*(s-d2)*(s-d3));//面积,海伦公式printf("L = %.2lf, A = %.2lf",l,area); }elseprintf("Impossible");return 0;
}
7-3-10 计算分段函数[3]
本题目要求计算下列分段函数f(x)的值:
输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。
输入样例1:
10
输出样例1:
f(10.0) = 0.1
输入样例2:
234
输出样例2:
f(234.0) = 234.0
#include<bits/stdc++.h>
using namespace std;
int main(){double x;cin>>x;if(x==10)printf("f(10.0) = 0.1");else printf("f(%.1f) = %.1f",x,x);return 0;
}
7-3-11 求一元二次方程的根
本题目要求一元二次方程ax2+bx+c=0的根,结果保留2位小数。(注意:0.00会在gcc下被输出为-0.00,需要做特殊处理,输出正确的0.00。)
输入格式:
输入在一行中给出3个浮点系数a、b、c,中间用空格分开。
输出格式:
根据系数情况,输出不同结果:
1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;
2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;
3)如果方程只有一个根,则直接输出此根;
4)如果系数都为0,则输出"Zero Equation";
5)如果a和b为0,c不为0,则输出"Not An Equation"。
输入样例1:
2.1 8.9 3.5
输出样例1:
-0.44
-3.80
输入样例2:
1 2 3
输出样例2:
-1.00+1.41i
-1.00-1.41i
输入样例3:
0 2 4
输出样例3:
-2.00
输入样例4:
0 0 0
输出样例4:
Zero Equation
输入样例5:
0 0 1
输出样例5:
Not An Equation
//太懒了,直接参考网上代码 ,7-10 求一元二次方程的根 (20分)-CSDN博客
#include<stdio.h>
#include<math.h>
int main()
{float a,b,c;scanf("%f %f %f",&a,&b,&c);double delt = b*b-4*a*c;double x1,x2;double x;if(a!=0){if(delt>0){x1 = (-b+sqrt(delt))/(a*2);x2 = (-b-sqrt(delt))/(a*2);printf("%.2f\n",x1);printf("%.2f\n",x2); }else if(delt < 0){if(b!=0){double real = (-b)*1.0/(2*a);double imag = sqrt(-delt)/(2*a);printf("%.2f%+.2lfi\n",real,imag);printf("%.2f%+.2lfi\n",real,-imag);}else{double x = sqrt(-delt)*1.0/(2*a);printf("%.2f%+.2lfi\n",0.0,x);printf("%.2f%+.2lfi\n",0.0,-x);}}else{printf("%.2f\n",-b*1.0/(2*a));}
}else if(a==0&&b==0&&c==0){printf("Zero Equation\n");}else if(a==0&&b==0&&c!=0){printf("Not An Equation\n");}else if(a==0&&b!=0&&c!=0)printf("%.2f\n",(-c*1.0)/b);return 0;
}
7-3-12 计算个人所得税
假设个人所得税为:税率×(工资−1600)。请编写程序计算应缴的所得税,其中税率定义为:
- 当工资不超过1600时,税率为0;
- 当工资在区间(1600, 2500]时,税率为5%;
- 当工资在区间(2500, 3500]时,税率为10%;
- 当工资在区间(3500, 4500]时,税率为15%;
- 当工资超过4500时,税率为20%。
输入格式:
输入在一行中给出非负工资。
输出格式:
在一行输出个人所得税,精确到小数点后2位。
输入样例1:
1600
输出样例1:
0.00
输入样例2:
1601
输出样例2:
0.05
输入样例3:
3000
输出样例3:
140.00
输入样例4:
4000
输出样例4:
360.00
输入样例5:
5000
输出样例5:
680.00
#include<stdio.h>
int main()
{double a,y;scanf("%lf",&a);if(a<=1600)y=0;if(a>1600&&a<=2500)y=0.05*(a-1600);if(a>2500&&a<=3500)y=0.10*(a-1600);if(a>3500&&a<=4500)y=0.15*(a-1600);if(a>4500)y=0.20*(a-1600);printf("%.2lf",y);return 0;
}
7-3-13 三天打鱼两天晒网
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
输入格式:
输入在一行中给出一个不超过1000的正整数N。
输出格式:
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。
输入样例1:
103
输出样例1:
Fishing in day 103
输入样例2:
34
输出样例2:
Drying in day 34
#include<bits/stdc++.h>
using namespace std;
int main(){int x;cin>>x;if(x%5>=1&&x%5<=3)cout<<"Fishing in day "<<x;else cout<<"Drying in day "<<x;return 0;
}
7-3-14 计算油费
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。
本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。
输入格式:
输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)。
输出格式:
在一行中输出应付款额,保留小数点后2位。
输入样例:
40 97 m
输出样例:
301.34
#include<bits/stdc++.h>
using namespace std;
int main(){int x,y;char c;double z;cin>>x>>y>>c;if(y==90)z=x*6.95;else if(y==93)z=x*7.44;else z=x*7.93;if(c=='m')z*=0.95;else z*=0.97;printf("%.2f",z);return 0;
}
7-3-15 超速判断
模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。
输入格式:
输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。
输出格式:
在一行中输出测速仪显示结果,格式为:Speed: V - S
,其中V
是车速,S
或者是Speeding
、或者是OK
。
输入样例1:
40
输出样例1:
Speed: 40 - OK
输入样例2:
75
输出样例2:
Speed: 75 - Speeding
#include<bits/stdc++.h>
using namespace std;
int main(){int x;cin>>x;if(x>60)printf("Speed: %d - Speeding",x);else printf("Speed: %d - OK",x);return 0;
}
7-3-16 分段计算居民水费
为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5。请编写程序实现水费的计算。
输入格式:
输入在一行中给出非负实数x。
输出格式:
在一行输出应交的水费,精确到小数点后2位。
输入样例1:
12
输出样例1:
16.00
输入样例2:
16
输出样例2:
22.50
#include<bits/stdc++.h>
using namespace std;
int main(){double x,y;cin>>x;if(x>15) y=2.5*x-17.5;else y=4*x/3;printf("%.2f",y);return 0;
}
7-3-17 计算工资
某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。
输入格式:
输入在一行中给出2个正整数,分别为某员工入职年数和周工作时间,其间以空格分隔。
输出格式:
在一行输出该员工的周薪,精确到小数点后2位。
输入样例1:
5 40
输出样例1:
2000.00
输入样例2:
3 50
输出样例2:
1650.00
#include<bits/stdc++.h>
using namespace std;
int main(){double x,y,z;cin>>x>>y;if(x>=5) {if(y>40)z=40*50+(y-40)*75;else z=y*50;} else {if(y>40)z=40*30+(y-40)*45;else z=y*30;}printf("%.2f",z);return 0;
}
7-3-17 计算工资
某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。
输入格式:
输入在一行中给出2个正整数,分别为某员工入职年数和周工作时间,其间以空格分隔。
输出格式:
在一行输出该员工的周薪,精确到小数点后2位。
输入样例1:
5 40
输出样例1:
2000.00
输入样例2:
3 50
输出样例2:
1650.00
#include<bits/stdc++.h>
using namespace std;
int main(){double x,y,z;cin>>x>>y;if(x>=5) {if(y>40)z=40*50+(y-40)*75;else z=y*50;} else {if(y>40)z=40*30+(y-40)*45;else z=y*30;}printf("%.2f",z);return 0;
}
7-4-1 星期几换算
今天是周六,又到了可以休息的日子了,7天后又会是一个周六。请你帮忙计算下,n(n为整数,可以是正也可以为负)天后会是星期几呢?
输入格式:
输入天数
输出格式:
输出星期几
输入样例1:
8
输出样例1:
星期日
输入样例2:
-2
输出样例2:
星期四
#include<stdio.h>
int main(){int n;scanf("%d",&n);int day;if((6+n)>=0)day=(6+n)%7;else day=7+(6+n)%7;switch(day){case 0:printf("星期日\n");break;case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;}return 0;
}
7-4-2 古时年龄称谓知多少?
输入一个人的年龄(岁),判断出他属于哪个年龄段 ?
0-9 :垂髫之年;
10-19: 志学之年;
20-29 :弱冠之年;
30-39 :而立之年;
40-49 :不惑之年;
50-59: 知命之年;
60-69 :花甲之年;
70-79 :古稀之年;
80-89 :杖朝之年;
90-99 :耄耋之年。
输入格式:
输入一个人的年龄(整数)。题目保证输入整数的范围[0 , 99]
输出格式:
输出年龄对应的年龄段。
输入样例:
55
输出样例:
知命之年
#include<bits/stdc++.h>
using namespace std;
int main(){int x;cin>>x;if(x>=0&&x<=9)cout<<"垂髫之年";if(x>=10&&x<=19)cout<<"志学之年";if(x>=20&&x<=29)cout<<"弱冠之年";if(x>=30&&x<=39)cout<<"而立之年";if(x>=40&&x<=49)cout<<"不惑之年";if(x>=50&&x<=59)cout<<"知命之年";if(x>=60&&x<=69)cout<<"花甲之年";if(x>=70&&x<=79)cout<<"古稀之年";if(x>=80&&x<=89)cout<<"杖朝之年";if(x>=90&&x<=99)cout<<"耄耋之年";return 0;
}
7-4-3 输出该月天数
从键盘输入一个年份year和月份month,输出该月有多少天(考虑闰年)。
提示:如果年份能被400整除,则它是闰年;如果能被4整除,而不能被100整除,则也是闰年,否则不是闰年。
输入格式:
输入任意符合范围(1月~12月)的月份和(1900年~9999年)年份,且两个值之间空格分隔。
输入样例:
2000 2
输出样例:
year = 2000 month = 2 days=29
输入样例:
2014 8
输出样例:
year = 2014 month = 8 days=31
#include<bits/stdc++.h>
using namespace std;
int main(){int x,y;cin>>x>>y;int a[20]={0,31,28,31,30,31,30,31,31,30,31,30,31};if(x%400==0||(x%4==0&&x%00))a[2]+=1;printf("year = %d month = %d days=%d",x,y,a[y]);return 0;
}
7-4-4 成绩转换
本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:
- 大于等于90分为A;
- 小于90且大于等于80为B;
- 小于80且大于等于70为C;
- 小于70且大于等于60为D;
- 小于60为E。
输入格式:
输入在一行中给出一个整数的百分制成绩。
输出格式:
在一行中输出对应的五分制成绩。
输入样例:
90
输出样例:
A
#include<bits/stdc++.h>
using namespace std;
int main(){int x;cin>>x;if(x>=90)cout<<"A";else if(x>=80&&x<90)cout<<"B";else if(x>=70&&x<80)cout<<"C";else if(x>=60&&x<70)cout<<"D";else cout<<"E";return 0;
}
7-5-1 求N分之一序列前N项和
本题要求编写程序,计算序列 1 + 1/2 + 1/3 + ... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。
输入样例:
6
输出样例:
sum = 2.450000
#include<bits/stdc++.h>
using namespace std;
int main(){int n;double s=0;cin>>n;for(int i=1;i<=n;i++)s+=1.0/i;printf("sum = %.6f",s);return 0;
}
7-5-2 求奇数分之一序列前N项和
本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。
输入样例:
23
输出样例:
sum = 2.549541
#include<bits/stdc++.h>
using namespace std;
int main(){int n;double s=0;cin>>n;for(int i=1;i<=n;i++){s+=1.0/(2*i-1);}printf("sum = %.6f",s);return 0;
}
7-5-3 求简单交错序列前N项和
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。
输入样例:
10
输出样例:
sum = 0.819
#include<bits/stdc++.h>
using namespace std;
int main(){int n;double s=0;cin>>n;for(int i=1;i<=n;i++){if(i%2==1)s+=1.0/(3*i-2);else s-=1.0/(3*i-2);}printf("sum = %.3f",s);return 0;
}
7-5-4 求平方与倒数序列的部分和
本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。
输入格式:
输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。
输入样例:
5 10
输出样例:
sum = 355.845635
#include<bits/stdc++.h>
using namespace std;
int main(){
int x,y;double s=0;cin>>x>>y;for(int i=x;i<=y;i++){s+=i*i;s+=1.0/i;}printf("sum = %.6f",s);return 0;
}
7-5-5 求交错序列前N项和
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,结果保留三位小数。
输入样例:
5
输出样例:
0.917
#include<stdio.h>
int main()
{int n,k;double sum;sum=0;k=1;scanf("%d",&n);for(int i=1;i<=n;i++){sum=sum+k*i*1.0/(2*i-1);k=k*(-1);}printf("%.3lf",sum);return 0;
}
7-5-6 求平方根序列前N项和
本题要求编写程序,计算平方根序列1+2+3+⋯的前N项之和。可包含头文件math.h
,并调用sqrt
函数求平方根。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。
输入样例:
10
输出样例:
sum = 22.47
#include<bits/stdc++.h>
using namespace std;
int main(){int n;double s=0;cin>>n;for(int i=1;i<=n;i++){s+=sqrt(i);}printf("sum = %.2f",s);return 0;
}
7-5-7 求阶乘序列前N项和
本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。
输入格式:
输入在一行中给出一个不超过12的正整数N。
输出格式:
在一行中输出整数结果。
输入样例:
5
输出样例:
153
#include<bits/stdc++.h>
using namespace std;
int main(){int n,x=1, s=0;cin>>n;for(int i=1;i<=n;i++){x*=i;s+=x;}printf("%d",s);return 0;
}
7-6-1 统计字符
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
输入样例:
aZ &
09 Az
输出样例:
letter = 4, blank = 3, digit = 2, other = 1
#include<bits/stdc++.h>
using namespace std;
int main(){
char c;int l=0,b=0,d=0,o=0;for(int i=0;i<10;i++){scanf("%c",&c);if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))l++;else if(c==' '||c=='\n')b++;else if(c>='0'&&c<='9')d++;else o++;}printf("letter = %d, blank = %d, digit = %d, other = %d",l,b,d,o);return 0;
}
7-6-2 统计学生成绩
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
- 大于等于90分为A;
- 小于90且大于等于80为B;
- 小于80且大于等于70为C;
- 小于70且大于等于60为D;
- 小于60为E。
输入格式:
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。
输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
输入样例:
7
77 54 92 73 60 65 69
输出样例:
1 0 2 3 1
#include<bits/stdc++.h>
using namespace std;
int main(){int n,i,x,a=0,b=0,c=0,d=0,e=0;cin>>n;while(n--){cin>>x;if(x>=90)a++;else if(x>=80&&x<90)b++;else if(x>=70&&x<80)c++;else if(x>=60&&x<70)d++;else e++;}cout<<a<<' '<<b<<' '<<c<<' '<<d<<' '<<e;return 0;
}
7-6-3 奇偶分家
给定N
个正整数,请统计奇数和偶数各有多少个?
输入格式:
输入第一行给出一个正整N
(≤1000);第2行给出N
个非负整数,以空格分隔。
输出格式:
在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。
输入样例:
9
88 74 101 26 15 0 34 22 77
输出样例:
3 6
#include<bits/stdc++.h>
using namespace std;
int main(){int n,x,a=0,b=0;cin>>n;while(n--){cin>>x;if(x%2)a++;else b++;}cout<<a<<' '<<b;return 0;
}
7-6-4 统计低2位均为偶数的数
给定两个正整数,m和n,m< n,请计算在 m和n之间(包括m和n)所有符合以下条件的数的和
条件:个位数和十位数都是偶数
输入格式:
输入两个正整数m和n,数据保证m<n,10<= m < n <=1000。
输出格式:
输出m和n之间满足条件的所有数的和,输出数值后需要输出回车换行。
输入样例:
在这里给出一组输入。例如:
20 25
输出样例:
在这里给出相应的输出。例如20+22+24=86:
66
#include<bits/stdc++.h>
using namespace std;
int main(){int a,b,i,x=0;cin>>a>>b;for(i=a;i<=b;i++){if(i%10%2==0&&i/10%2==0)x+=i;}cout<<x<<endl;return 0;
}
7-6-5 统计 十位 比 个位 大的数
给定两个正整数,m和n,m< n,请计算在 m和n之间(包括m和n)所有符合以下条件的数的和
条件:十位数比个位数大
输入格式:
输入两个正整数m和n,数据保证m<n,10<= m < n <=1000。
输出格式:
输出m和n之间满足条件的所有数的和,输出数值后需要输出回车换行。
输入样例:
在这里给出一组输入。例如:
150 160
输出样例:
在这里给出相应的输出。例如150+151+152+153+154+160:
920
#include<bits/stdc++.h>
using namespace std;
int main(){int a,b,i,x=0;cin>>a>>b;for(i=a;i<=b;i++){if(i/10%10>i%10 )x+=i;}cout<<x<<endl;return 0;
}
7-6-6 统计成绩(*)
输入一个班的成绩,输出最高分、最低分和平均分。
输入格式
班级人数n (n>0)
n 名学生的成绩 s1,s2,⋯,sn (0≤si≤100,1≤i≤n)
输出格式
最高分、最低分、平均分
要求:所有分数只输出1位小数。
输入样例
15
98.5 67.3 45.5 90 75.2 65 77 99.5 20 100 80.5 69.5 88.5 66.5 87.5
输出样例
100.0 20.0 75.4
#include<bits/stdc++.h>
using namespace std;
int main(){int n,m;double x,max=0,min=100,s;cin>>n;m=n;while(m--){cin>>x;if(x>max)max=x;if(x<min)min=x;s+=x;}printf("%.1f %.1f %.1f",max,min,s/n);return 0;
}
7-6-7 统计数字
输入一个字符串,统计其中数字字符的个数。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入一个仅由字母和数字组成的字符串(长度不超过80)。
输出格式:
对于每组测试,在一行上输出该字符串中数字字符的个数。
输入样例:
2
ac520ac520
a1c2m3sdf
输出样例:
6
3
#include<bits/stdc++.h>
using namespace std;
int main(){int n;string s;cin>>n;getchar();while(n--){cin>>s;int x=0;for(int i=0;i<s.size();i++){if(s[i]>='0'&&s[i]<='9')x++;}cout<<x<<endl;}return 0;
}
7-7-1 换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
#include<stdio.h>
int main(){int n=0,x,a,b,c;scanf("%d",&x);for(a=x/5;a>=1;a--){
for(b=x/2;b>=1;b--){
for(c=x;c>=1;c--){if((a*5+b*2+c)==x){printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",a,b,c,a+b+c);n++;}
}
}}printf("count = %d",n);
return 0;
}
7-7-2 人民币兑换
1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,会有很多种兑换方案。请编写程序给出各种兑换方案。
输入格式:
输入为一个正整数n,表示要求输出前n种可能的方案。方案的顺序,是按照5分硬币从少到多排列的。
输出格式:
显示前n种方案中5分、2分、1分硬币各多少枚。每行显示一种方案,数字之间空一格,最后一个数字后没有空格。
注意:如果全部方案不到n种,就顺序输出全部可能的方案。
输入样例:
5
输出样例:
1 46 53
2 42 56
3 38 59
4 34 62
5 30 65
#include<bits/stdc++.h>
using namespace std;
int main(){int n,i,j,k;cin>>n;for(i=1;i<=20;i++){for(j=1;j<=50;j++){for(k=1;k<=100;k++){if(((i*5+2*j+k)==150)&&(i+j+k==100)&&n){ printf("%d %d %d\n",i,j,k);n--;}}}}return 0;
}
7-7-3 猜算式?2*7?=3848中的数字
算式:?2*7?=3848中缺少一个十位数和一个个位数。编程求出使该算式成立时的这两个数,并输出正确的算式。
输出格式:
在一行中输出A2*B7=C的值。
输出样例:
52*74=3848
#include<bits/stdc++.h>
using namespace std;
int main(){for(int i=1;i<10;i++){for(int j=1;j<10;j++){if(((i*10+2)*(70+j))==3848)cout<<i*10+2<<"*"<<7*10+j<<"=3848"<<endl;}}return 0;
}
7-7-4 打印直角九九乘法表
输出直角九九乘法口诀,输出效果如样例。
输出格式:
以左下直角的格式输出九九乘法表,每个式子按“a*b=c”形式输出,其中a和b各占1位列宽,c占3位列宽并左对齐。
输出样例:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
#include<bits/stdc++.h>
using namespace std;
int main(){int n=9,i,j;for(i=1;i<=n;i++){for(j=1;j<=i;j++){printf("%d*%d=%-3d",i,j,i*j);}cout<<endl;}return 0;
}
7-7-5 数字金字塔
输入正整数n,输出n层数字金字塔。
输入格式:
正整数n,1<=n<=9。
输出格式:
n层的金字塔,其中第1层的“1”在第1行的第39列(列从1开始计数)。
输入样例:
5
输出样例:
1121123211234321123454321
#include<bits/stdc++.h>
using namespace std;
int main(){int n,i,j;cin>>n;for(i=0;i<n;i++){for(j=1;j<=38-i;j++)cout<<' ';for(j=1;j<=i+1;j++)cout<<j;for(j=i;j>=1;j--)cout<<j;cout<<endl;}return 0;
}
7-7-6 输出2到n之间的全部素数
本题要求输出2
到n
之间的全部素数,每行输出10
个。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
输入格式:
输入在一行中给出一个长整型范围内的整数。
输出格式:
输出素数,每个数占6位,每行输出10个。如果最后一行输出的素数个数不到10个,也需要换行。
输入样例:
10
输出样例:
2 3 5 7
#include<bits/stdc++.h>
using namespace std;
int main(){int n,i,j,y=0;cin>>n;if(n<=1)return 0;for(i=2;i<=n;i++){int x=0;for(int j=2;j<=sqrt(i);j++){if(i%j==0){x=1;break;}}if(x==0){printf("%6d",i);y++;if(y%10==0)cout<<endl;}}if(y%10)cout<<endl;return 0;
}
7-13 穷举 穷举问题-搬砖
某工地需要搬运砖块,已知男人一人搬3
块,女人一人搬2
块,小孩两人搬1
块。如果想用n
人正好搬n
块砖,问有多少种搬法?
输入格式:
输入在一行中给出一个正整数n
。
输出格式:
输出在每一行显示一种方案,按照"men = cnt_m, women = cnt_w, child = cnt_c
"的格式,输出男人的数量cnt_m
,女人的数量cnt_w
,小孩的数量cnt_c
。请注意,等号的两侧各有一个空格,逗号的后面也有一个空格。
如果找不到符合条件的方案,则输出"None
"
输入样例:
45
输出样例:
men = 0, women = 15, child = 30
men = 3, women = 10, child = 32
men = 6, women = 5, child = 34
men = 9, women = 0, child = 36
#include<bits/stdc++.h>
using namespace std;
int main(){int n,i,j,k,x=0;cin>>n;for(i=0;i<=n/3;i++){for(j=0;j<=n/2;j++){for(k=0;k<=2*n;k++){if(((i*3+2*j+k/2.0)==n)&&(i+j+k==n)){ printf("men = %d, women = %d, child = %d\n",i,j,k);x=1;}}}}if(x==0)cout<<"None";return 0;
}
7-7-8 百鸡问题扩展-N鸡问题
N
元钱买N
只鸡,公鸡每只5元,母鸡每只3元,小鸡1元3只,N
元钱必须刚好买N
只鸡,而且鸡必须整只买,不能劈开买。
有几种买法呢?这就是N鸡问题。
输入格式:
在一行中输入一个正整数N
。(N<500
)
输出格式:
在一行中输出两个整数c
s
,中间用一个空格隔开,表示N
元钱买N
只鸡共有 c
种买法,且所有买法的公鸡数量之和是 s
。
如果无解,则 s
为 -1
.
输入样例1:
100
输出样例1:
4 24
输入样例2:
1
输出样例2:
0 -1
#include<bits/stdc++.h>
using namespace std;
int main(){int n,i,j,k,x=0,y=0;cin>>n;for(i=0;i<=n/5;i++){for(j=0;j<=n/3;j++){for(k=0;k<=3*n;k++){if(((i*5+3*j+k/3.0)==n)&&(i+j+k==n)){x++;y+=i;}}}} if(x==0)cout<<"0 -1";elsecout<<x<<' '<<y;return 0;
}
7-8-1 求给定精度的简单交错序列部分和
本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。
输入格式:
输入在一行中给出一个正实数eps。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。
输入样例1:
4E-2
输出样例1:
sum = 0.854457
输入样例2:
0.02
输出样例2:
sum = 0.826310
#include<bits/stdc++.h>
using namespace std;
int main(){double n,s=0,x=0,y=1;int i=1;cin>>n;do{x=1.0/i;s+=x*y;y=-y;i+=3;}while(x>n);printf("sum = %.6f",s);return 0;
}
7-8-2 最大公约数和最小公倍数
本题要求两个给定正整数的最大公约数和最小公倍数。
输入格式:
输入在一行中给出两个正整数M和N(≤1000)。
输出格式:
在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。
输入样例:
511 292
输出样例:
73 2044
#include<bits/stdc++.h>
using namespace std;
int main(){int n,m,a,x,y;cin>>n>>m;x=n,y=m;if(n%m==0)a=n/m;while(1){a=abs(n-m);n=m;m=a;if(n%m==0)break;} cout<<a<<' '<<x/a*y;;return 0;
}
7-8-3 兔子繁衍问题
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?
输入格式:
输入在一行中给出一个不超过10000的正整数N。
输出格式:
在一行中输出兔子总数达到N最少需要的月数。
输入样例:
30
输出样例:
9
#include<bits/stdc++.h>
using namespace std;
int main(){int n,i;cin>>n;int a[n];a[0]=1;a[1]=2;for(i=2;i<=n;i++)a[i]=a[i-2]+a[i-1];for(i=0;;i++){if(a[i]/2>=n){cout<<i;break;}}return 0;
}
7-8-4 求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过109的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
#include<bits/stdc++.h>
using namespace std;
int main(){int n,x=0,y=0;cin>>n;while(n){int a=n%10;y+=a;n/=10;x++;}cout<<x<<' '<<y;return 0;
}
相关文章:

2023-2024-1高级语言程序设计第1次月考
7-1-1 计算摄氏温度 给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C5(F−32)/9。题目保证输入与输出均在整型范围内。 输入格式: 输入在一行中给出一个华氏温度。 输出格式: 在一行中按照格式“Celsius C”输出对…...

目标检测:Proposal-Contrastive Pretraining for Object Detection from Fewer Data
论文作者:Quentin Bouniot,Romaric Audigier,Anglique Loesch,Amaury Habrard 作者单位:Universit Paris-Saclay; Universit Jean Monnet Saint-Etienne; Universitaire de France (IUF) 论文链接:http://arxiv.org/abs/2310.16835v1 内容…...

Cesium:CGCS2000坐标系的xyz坐标转换成WGS84坐标系的经纬高度,再转换到笛卡尔坐标系的xyz坐标
作者:CSDN @ _乐多_ 本文将介绍使用 Vue 、cesium、proj4 框架,实现将CGCS2000坐标系的xyz坐标转换成WGS84坐标系的经纬高度,再将WGS84坐标系的经纬高度转换到笛卡尔坐标系的xyz坐标的代码。并将输入和输出使用 Vue 前端框架展示了出来。代码即插即用。 网页效果如下图所示…...

【OpenCV实现图像:用Python生成图像特效,报错ValueError: too many values to unpack (expected 3)】
文章目录 概要读入图像改变单个通道黑白特效颜色反转将图像拆分成四个子部分 概要 Python是一种功能强大的编程语言,也是图像处理领域中常用的工具之一。通过使用Python的图像处理库(例如Pillow、OpenCV等),开发者可以实现各种各…...

875. 爱吃香蕉的珂珂
题目描述 珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时后回来。 珂珂可以决定她吃香蕉的速度 k (单位:根/小时)。每个小时,她将会选择一堆香蕉,…...

台灯太亮会导致近视吗?精选高品质的台灯
台灯相信很多家庭都会备上一台,用于办公、休闲或者给孩子学习使用,如果使用的台灯亮度过高的话,可能会对视力造成一定的影响,尤其是夜晚的时候。建议是选择带有亮度调节功能的台灯会比较好一点,可以自行根据周围环境的…...

Scala函数和闭包
1. 函数 1.1 函数与方法 Scala 中函数与方法的区别非常小,如果函数作为某个对象的成员,这样的函数被称为方法,否则就是一个正常的函数。 // 定义方法 def multi1(x:Int) {x * x} // 定义函数 val multi2 (x: Int) > {x * x}println(mult…...

LeetCode----1935. 可以输入的最大单词数
题目 键盘出现了一些故障,有些字母键无法正常工作。而键盘上所有其他键都能够正常工作。 给你一个由若干单词组成的字符串 text ,单词间由单个空格组成(不含前导和尾随空格);另有一个字符串 brokenLetters ,由所有已损坏的不同字母键组成,返回你可以使用此键盘完全输入…...

学习笔记三十:K8S配置管理中心Secret实现加密数据配置管理
K8S配置管理中心Secret实现加密数据配置管理 Secret概述secret三种可选参数:Secret类型 使用Secret通过环境变量引入Secret通过volume挂载Secret创建Secret创建yaml文件将Secret挂载到Volume中 Secret概述 Configmap一般是用来存放明文数据的,如配置文件࿰…...

关于uviewui修改主题及在uniapp中的应用
在uview使用过程中遇到很多不方便的地方,记录下来 修改主题颜色 给UI框架换个主题色基础方法是覆盖原有色(但这个方法比较笨,处理起来也不干净利索),所以换个思路改变基础色值变量,步骤主要分为2部分&…...

使用QEMU模拟启动uboot
uboot的相关知识,可以参考:uboot基本概念。 一、环境配置 WSL: ubutu20.04 模拟开发板:vexpress-a9 uboot版本:u-boot-2023.10 二、安装QEMU 2.1、安装sudo apt install qemu2.2、查看支持哪些开发板qemu-system-arm -M help结…...

学习数据结构和算法之前,你需要知道什么?
最快的学习方法是什么?计算机基础支持有哪些?学习数据结构和算法应该如何思考?如何成长?为什么要学习数据结构和算法? 最快的学习方法是什么? 实践。 计算机基础支持有哪些? 数据结构和算法。…...

16. 机器学习 - 决策树
Hi,你好。我是茶桁。 在上一节课讲SVM之后,再给大家将一个新的分类模型「决策树」。我们直接开始正题。 决策树 我们从一个例子开始,来看下面这张图: 假设我们的x1 ~ x4是特征,y是最终的决定,打比方说是…...

将多余的内存,当作虚拟内存。修改edge缓存路径到虚拟内存中
一、下载工具,把内存映射成硬盘 软媒内存盘 v1.1.3.0 软媒内存盘下载-软媒内存盘 v1.1.3.0 - 下载吧 (xiazaiba.com) 二、映射edge的缓存路径 到新建的虚拟硬盘中 mklink /D "C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data" "V:\…...

【从0到1设计一个网关】过滤器链的实现---实现负载均衡过滤器
文章目录 什么是过滤器?编写负载均衡过滤器负载均衡的定义与实现负载均衡算法设计实现效果演示链接 自研网关整合Nacos,实现服务注册和配置变更 源码链接 什么是过滤器? 再前面的几个章节中我们已经实现了将我们的网关服务注册到注册中心,并且成功的从配置中心拉取了配置…...

科技云报道:打造生成式AI应用,什么才是关键?
科技云报道原创。 生成式AI作为当前人工智能的前沿领域,全球多家科技企业都在加大生成式AI的研发投入力度。 随着技术、产品及应用等方面不断推出重要成果,如今有更多的行业用户在思考该如何将生成式AI应用落地。 但开发生成式AI应用是一个充满挑战的…...

可回馈式电子负载的工作原理
可回馈式电子负载是一种用于模拟负载并测试电源或电子设备性能的工具。其工作原理如下: 控制回路:可回馈式电子负载内部有一个控制回路,用于监测和控制负载的电流、电压和功率等参数。这个控制回路可以根据用户设定的参数,自动调整…...

基于Vite使用VitePress搭建静态站点博客
使用VitePress搭建静态站点博客 官方文档什么是VitePress?一、初始化项目1.安装依赖包VitePress可以单独使用,也可以安装到现有的项目中。在这两种情况下,您都可以安装它: (也可以全局安装,建议:当前项目内安装) 2.初始…...

湖南互联网医院-让患者随时随地接受医疗服务
打造移动互联网医院,就是,通过移动互联网将医院与患者、医院内部(医生、护士、领导层)、医院与生态链上的各类组织机构连接起来。以患者为中心,优化医院业务流程,提升医疗服务质量与医院资源能效࿰…...

【建议收藏】免费体验的AI论文写作网站-「智元兔 AI」
在当今技术飞速发展的时代,越来越多的领域开始应用人工智能(Artificial Intelligence,简称AI)。其中,AI写作工具备受瞩目,备受推崇。 在众多的选择中,智元兔AI是一款在笔者使用过程中非常有帮助…...

CUDA编程
线程全局索引计算方式 一维网格和一维的线程块 计算方法:...

gorilla/websocket的chat示例代码简单分析
代码地址:https://github.com/gorilla/websocket/tree/main/examples/chat 文件包含:main.go、hub.go、client.go、home.html main.go文件 func main() {flag.Parse()hub : newHub() // 实例化Hubgo hub.run() // 使用chan处理 增删Hub的连接 和 广播消…...

地图坐标展示工具folium
参考:https://github.com/python-visualization/folium https://zhuanlan.zhihu.com/p/384078185?utm_id0 https://www.w3cschool.cn/article/37568875.html 其他还有baidu:echarts 安装: pip install folium代码(离线地图&a…...

Ruby 之方法委托
ruby 方法委托的优点在于,可以将多个不同实例(或类)的方法组织在一起,然后进行统一调用,方便各类方法的统一管理。比如下边示例中的 color 和 username,本来是不同类里边的方法,但最后都可以统一…...

[论文笔记]RetroMAE
引言 RetroMAE,中文题目为 通过掩码自编码器预训练面向检索的语言模型。 尽管现在已经在许多重要的自然语言处理任务上进行了预训练,但对于密集检索来说,仍然需要探索有效的预训练策略。 本篇工作,作者提出RetroMAE,一个新的基于掩码自编码器(Masked Auto-Encoder,MAE)…...

服务熔断保护实践--Sentinal
目录 概述 环境说明 步骤 Sentinel服务端 Sentinel客户端 依赖 在客户端配置sentinel参数 测试 保护规则设置 设置资源名 设置默认的熔断规则 RestTemplate的流控规则 Feign的流控规则 概述 微服务有很多互相调用的服务,构成一系列的调用链路…...

页面淘汰算法模拟实现与比较
1.实验目标 利用标准C 语言,编程设计与实现最佳淘汰算法、先进先出淘汰算法、最近最久未使用淘汰算法、简单 Clock 淘汰算法及改进型 Clock 淘汰算法,并随机发生页面访问序列开展有关算法的测试及性能比较。 2.算法描述 1. 最佳淘汰算法(Op…...

FPGA实现HDMI转LVDS视频输出,纯verilog代码驱动,提供4套工程源码和技术支持
目录 1、前言免责声明 2、目前我这里已有的图像处理方案3、本 LVDS 方案的特点4、详细设计方案设计原理框图视频源选择静态彩条IT6802解码芯片配置及采集ADV7611解码芯片配置及采集silicon9011解码芯片配置及采集纯verilog的HDMI 解码模块奇偶场分离并串转换LVDS驱动 5、vivado…...

JAVA-easyexcel多sheet页导入
今天给宝子带来一套多sheet页导入的模板,话不多说直接上代码 String localFilePath "file.xlsx";JSONObject jsonObject JSON.parseObject(file);String useFile jsonObject.getString("file");useFileuseFile.replace("\\\\",&qu…...

Java——比较器(一文搞懂比较器Comparable和Comparator)
基于Comparable的接口类基于Comparator的接口类 1、比较器的Comparable接口类 Comparable类的定义: public interface Comparable<T>{ public int compareTo(T o); }2、Comparable比较器的返回值: 此方法返回一个int类型的数据,但是此int的值…...