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)。

题图.jpg

输入格式

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,快速计算:

题图.jpg

输入格式

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)。

题图.jpg

输入格式

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)的值:

f2-11

注:可在头文件中包含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 古时年龄称谓知多少?

h.jpg

输入一个人的年龄(岁),判断出他属于哪个年龄段 ?

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之间的全部素数

本题要求输出2n之间的全部素数,每行输出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;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/126021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高频SQL50题(基础版)-1

文章目录 主要内容一.SQL练习题1.1757-可回收且抵制的产品代码如下&#xff08;示例&#xff09;: 2.584-寻找用户推荐人代码如下&#xff08;示例&#xff09;: 3.595-大的国家代码如下&#xff08;示例&#xff09;: 4.1148-文章浏览代码如下&#xff08;示例&#xff09;: 5…

CT MR 三维重建可视化系统

前言 本文通过研究医学可视化的不同算法&#xff0c;在 vc环境下&#xff0c;以可视化软件包VTK 为平台&#xff0c;编程设计实现了三维建模系统&#xff0c;实现了 DICOM图像的三维重建。 材料与方法 使用符合 DICOM 标准的临床 CT、MRI图像数据&#xff0c;在 vc环境下&…

Python 算法高级篇:最小生成树算法的优化与应用

Python 算法高级篇&#xff1a;最小生成树算法的优化与应用 引言 1. 最小生成树问题简介2. Prim 算法3. Kruskal 算法4. 优化与比较5. 案例应用&#xff1a;通信网络设计6. 总结 引言 最小生成树&#xff08; Minimum Spanning Tree &#xff0c; MST &#xff09;是图论中的一…

利用python绘制多个箱型图

文章目录 1. 图片2. 代码 1. 图片 图片示例如下所示&#xff1a; 2. 代码 代码如下所示&#xff1a; # Define the custom order based on atmospheric stability custom_order [vus_0, us_1, ne_2, ws_3, ws_4, s_5, s_6, s_7, vs_8, vs_9]# Step 1: Reorder the statis…

基于jsp,ssm物流快递管理系统

开发工具&#xff1a;eclipse&#xff0c;jdk1.8 服务器&#xff1a;tomcat7.0 数据库&#xff1a;mysql5.7 技术&#xff1a; springspringMVCmybaitsEasyUI 项目包括用户前台和管理后台两部分&#xff0c;功能介绍如下&#xff1a; 一、用户(前台)功能&#xff1a; 用…

node使用fs模块(三)—— fs模块的其他使用(复制文件、文件的重命名和移动、删除)

文章目录 前言一、fs的复制1.方式一(先读取后写入)2.方式二&#xff08;流式读取写入)3.两种方式的区别 二、文件的重命名和移动&#xff08;fs.rename&#xff09;1. 参数2. 基本使用&#xff08;文件的重命名&#xff09;3. 基本使用&#xff08;文件的移动&#xff09;4.文件…

图书馆书目推荐数据分析与可视化

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

公共字段自动填充、菜品管理

一、公共字段填充 1.1、问题分析 1.2、实现思路 1.3、代码开发 1.3.1、自定义注解 import com.sky.enumeration.OperationType;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import jav…

【红蓝攻防鸿篇巨著】ATTCK视角下的红蓝对抗实战指南

【文末送书】今天推荐一本网安领域优质书籍《ATT&CK视角下的红蓝对抗实战指南》&#xff0c;本文将从其亮点与内容出发&#xff0c;详细阐发其对于网安从业人员的重要性与益处。 文章目录 背景简介内容文末送书 背景 根据中国互联网络信息中心&#xff08;CNNIC&#xff0…

正则表达式包含数字和字符匹配

至少6位。 pattern : (?.[0-9])(?.[A-Za-z])[0-9A-Za-z]{6,} 正则表达式中的“?”是一个正向预查字符&#xff0c;它的意思是匹配前一个字符出现的最少一次。具体来说&#xff0c;当一个匹配出现时&#xff0c;它会检查前一个字符是否符合要求&#xff0c;如果符合&#xf…

Yuhan Blu-ray DVD Creator for Mac: 打造专属的高清视听盛宴

在如今的高清时代&#xff0c;谁能拒绝一款能够轻松将高清影片刻录成蓝光DVD的刻录机呢&#xff1f;而Yuhan Blu-ray DVD Creator for Mac正是这样一款令人惊艳的软件。 作为一款专为Mac用户打造的蓝光DVD刻录机&#xff0c;Yuhan Blu-ray DVD Creator for Mac支持将各种高清视…

媒体宣传如何助力品牌发展

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传可以在多方面助力品牌发展&#xff0c;下面是一些关键的方式&#xff1a; 1. 提高品牌知名度&#xff1a;媒体宣传可以将品牌曝光给更广泛的受众&#xff0c;使更多人了解您的品…

【Nginx37】Nginx学习:SSL模块(一)简单配置与指令介绍

Nginx学习&#xff1a;SSL模块&#xff08;一&#xff09;简单配置与指令介绍 又是一个重点模块&#xff0c;SSL 模块&#xff0c;其实就是我们常见的 HTTPS 所需要的配置模块。HTTPS 的重要性不用多说了吧&#xff0c;现在所有的 App、小程序 都强制要求是 HTTPS 的&#xff0…

代码随想录打卡第五十六天|1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和

1143.最长公共子序列 题目&#xff1a; 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的…

深入理解udp

1.再谈端口号 1.1复习 我们上一篇谈了很久的应用层的http&#xff0c;并在此前我们使用socket编程写了一个能相互通信的客户端与服务端&#xff0c;但是我们也只是粗略的理解了一下tcp和udp在编程过程中所形成的差异性&#xff0c;并没有实质去了解一下其详细内容&#xff0c;…

家政服务系统小程序app开发功能架构;

家政服务小程序系统&#xff0c;轻松搭建上门服务小程序。支持H5与小程序双端&#xff0c;还能DIY页面。根据您的需求&#xff0c;我们可定制开发家政服务小程序系统。想添加多种服务类目、优惠专区以及IM即时沟通功能&#xff1f;没问题&#xff0c;我们支持&#xff01;想要快…

【计算机网络笔记】传输层——可靠数据传输原理之Rdt协议

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

局域网内两台电脑共享文件夹(通过网线直连共享数据)

文章目录 2.设置共享文件夹3.访问共享文件夹 1.将两台电脑置于同一局域网下 用网线将两台电脑连接关闭两台电脑防火墙将两台电脑IP地址设置在同一局域网下 测试是否在同一局域网下&#xff0c;使用ping命令 ping 192.168.0.122.设置共享文件夹 选择想要共享的文件夹&#xff…

微服务-统一网关Gateway

网关的作用 对用户请求做身份认证、权限校验将用户请求路由到微服务&#xff0c;并实现负载均衡对用户请求做限流 搭建网关服务 创建新module&#xff0c;命名为Gateway&#xff0c;引入依赖&#xff08;1.SpringCloudGateway依赖&#xff1b;2.Eureka客户端依赖或者nacos的服…

git命令清单

一、设置和配置 1.初始化一个新的仓库&#xff1a; git init2.克隆&#xff08;Clone&#xff09;一个远程仓库到本地&#xff1a; git clone <repository_url>3.配置用户信息&#xff1a; git config --global user.name "Your Name" git config --global…