HNU程序设计 练习三-控制结构

news2024/11/28 19:36:42

1.台球游戏

【问题描述】

        在本台球游戏中,包含多种颜色的球,其中:红球15只各1分、黄球1只2分、绿球1只3分、咖啡球1只4分、蓝球1只5分、粉球1只6分、黑球1只7分。

        球的颜色表示为:

                           r-红色球 y-黄色球 g-绿色球 c-咖啡色球 b-蓝色球 p-粉红球 B-黑色球

        其中红球可能一次打进多个,且打进后不再摆回,其他球打进之后需要再摆回。

        请计算n次击打之后总的得分。

【输入形式】

        输入第一行为非负整数n,表示一个人进行了n次击打。

        接下来为n次击打记录,每次记录有两种形式:

                 如果打进红球,则有两行, 第一行为r,第二行为一个整数(<=15),表示打进的红球个数

                 如果打进其他球,仅有一行,为ygcbpB中任意一个字符。
【输出形式】

        输出一个整数,表示该人最终的得分。
【样例输入1】

5
r
3
g
y
r
1
B

【样例输出1】

16

【样例输入2】

5
c
g
y
c
B

【样例输出2】

20

【样例说明】

本题计算时无需考虑真实台球竞赛规则。

//台球游戏
//在本台球游戏中,包含多种颜色的球,其中:红球15只各1分、黄球1只2分、绿球1只3分、咖啡球1只4分、蓝球1只5分、粉球1只6分、黑球1只7分。
//
//        球的颜色表示为:
//
//                           r-红色球 y-黄色球 g-绿色球 c-咖啡色球 b-蓝色球 p-粉红球 B-黑色球
//
//        其中红球可能一次打进多个,且打进后不再摆回,其他球打进之后需要再摆回。
//
//        请计算n次击打之后总的得分。
#include<iostream>
using namespace std;
int main()
{
	int n,tem,score=0;
	char ch;
	cin>>n;
	while(n--){
		cin>>ch;
		if(ch=='r'){
			cin>>tem;
			score+=tem*1; //红球得分*个数 
		}else if(ch=='y'){ //黄球 
			score+=2;
		}else if(ch=='g'){ //绿球 
			score+=3;
		}else if(ch=='c'){ //咖啡色 
			score+=4;
		}else if(ch=='b'){ //蓝色 
			score+=5;
		}else if(ch=='p'){ //粉色 
			score+=6;
		}else if(ch=='B'){ //黑色 
			score+=7;
		}   //优化可以用swicth 
	}
	cout<<score<<endl;
	return 0;
 } 

2.ch3-4 分段函数求解

【问题描述】

根据以下函数关系,对输入的每个x值,求y值。函数关系:

(1)y=x*(x+2)   2<x<=10

(2)y=2*x         -1<x<=2

(3)y=x-1         x<=-1

【输入形式】

输入一个小数x。

【输出形式】

输出对应的y值(6位小数)

【样例输入】

1

【样例输出】

2.000000

【样例说明】

x=1,则推出y=2*x,则y=1*1=2,保留6位小数输出2.000000

【用例规模与约定】

所有评测用例满足:-10000000 ≤ x ≤ 10。

//ch3-4 分段函数求解
//根据以下函数关系,对输入的每个x值,求y值。函数关系:

//(1)y=x*(x+2)   2<x<=10

//(2)y=2*x         -1<x<=2

//(3)y=x-1         x<=-1
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	double x,y;
	cin>>x;
	if(2<x && x<=10){
		y=x*(x+2);
	}else if(-1<x && x<=2){
		y=2*x;
	}else if(x<=-1){
		y=x-1; //分段函数 
	}
	cout<<fixed<<setprecision(6)<<y<<endl; //保留6位小数 
	return 0;
}

3.ch3-5 3,5,7整除

【问题描述】

输入一个整数,判断其能否被3、5、7整除,若:

(1)能同时被3,5,7整除,则输出It's divisible by 3,5,7;

(2)能被其中两数(要指出哪两个)整除(如能被3,7整除),则输出It's divisible by 3,7;

(3)能被其中一个数(要指出哪一个)整除(如能被3整除),则输出It's divisible by 3;

(4)不能被3,5,7任一个整除,则输出null。


【输入形式】

输入一个整数n。

【输出形式】

输出一个判断信息,表示答案。

【样例输入】

30

【样例输出】

It's divisible by 3,5

【样例说明】

30能被3和5整除,但是不能被7整除。

【用例规模与约定】

所有评测用例满足:-1000000 ≤ n ≤ 10000000。

//ch3-5 3,5,7整除
//输入一个整数,判断其能否被3、5、7整除,若:
//
//(1)能同时被3,5,7整除,则输出It's divisible by 3,5,7;
//
//(2)能被其中两数(要指出哪两个)整除(如能被3,7整除),则输出It's divisible by 3,7;
//
//(3)能被其中一个数(要指出哪一个)整除(如能被3整除),则输出It's divisible by 3;
//
//(4)不能被3,5,7任一个整除,则输出null。
//

#include<iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	if(n%3==0 && n%5==0 && n%7==0){
		cout<<"It's divisible by 3,5,7"<<endl; //列出所有情况 
	}else if(n%3==0 && n%5==0){
		cout<<"It's divisible by 3,5"<<endl;
	}else if(n%3==0 && n%7==0){
		cout<<"It's divisible by 3,7"<<endl;
	}else if(n%5==0 && n%7==0){
		cout<<"It's divisible by 5,7"<<endl;
	}else if(n%3==0){
		cout<<"It's divisible by 3"<<endl;
	}else if(n%5==0){
		cout<<"It's divisible by 5"<<endl;
	}else if(n%7==0){
		cout<<"It's divisible by 7"<<endl;
	}else{
		cout<<"null"<<endl;
	}
	return 0;
}

4.ch3-6 成绩分类 

【问题描述】

给定一个整数表示考试成绩,判断并输出该成绩属于哪一类。设90分及以上 为“A”,80分至89分为“B”,70分至79分为“C”,60分至69分 为“D”,60分以下为“E”。

【输入形式】

输入一个整数成绩。

【输出形式】

输出一个字符,表示成绩的等级(大写字母)。

【样例输入】

59

【样例输出】

E

【样例说明】

59分低于60分,判定为E。

【用例规模与约定】、

所有评测用例满足:0 ≤ n ≤ 100。

//ch3-6 成绩分类
//给定一个整数表示考试成绩,
//判断并输出该成绩属于哪一类。设90分及以上 为“A”,
//80分至89分为“B”,70分至79分为“C”,60分至69分 为“D”,60分以下为“E”。
#include<iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	if(n>=90){
		cout<<"A";
	}else if(n>=80){
		cout<<"B";
	}else if(n>=70){
		cout<<"C";
	}else if(n>=60){
		cout<<"D";
	}else{
		cout<<"E"; //分类 
	}
	return 0;
}

5.小芳找工作 

【问题描述】

         小芳在校期间成绩优秀,毕业之前她决定去找一份她喜欢的工作,她将在自己中意的公司中选择,并设定了3个条件,满足其中2个条件的工作她认为可以接受。这三个条件分别为:

          1. 月薪不低于5000元

          2. 有带薪休假

          3. 离家不超过2000公里

          请根据某公司给定的3个给定条件的数据,判断小芳是否应该接受该公司的offer。

【输入形式】

           输入一行包含3个数据,分别表示公司给定的月薪(整数)、有无带薪休假(y-有,n-无)、离家距离(整数)
【输出形式】

            输出一行,Accept为接受,Refuse为拒绝
【样例输入】

5500 y 1500

【样例输出】

Accept
//小芳找工作
//小芳在校期间成绩优秀,毕业之前她决定去找一份她喜欢的工作,她将在自己中意的公司中选择,并设定了3个条件,满足其中2个条件的工作她认为可以接受。这三个条件分别为:
//
//          1. 月薪不低于5000元
//
//          2. 有带薪休假
//
//          3. 离家不超过2000公里
//
//          请根据某公司给定的3个给定条件的数据,判断小芳是否应该接受该公司的offer。
#include<iostream>
using namespace std;
int main()
{
	int salary,dis;
	char ch;
	cin>>salary>>ch>>dis;
	if(salary>=5000 && ch=='y'){
		cout<<"Accept";
	}else if(salary>=5000 && dis<=2000){
		cout<<"Accept";
	}else if(ch=='y' && dis<=2000){
		cout<<"Accept";
	}else{
		cout<<"Refuse"; //分类讨论 
	}
	return 0;
 } 

 6.输入字符统计

【问题描述】

从键盘输入n个字符,请分别统计大写字母、小写字母、数字、其他字符的个数并输出;还需要输出所有数字字符之和。
【输入形式】

第一行为一个整数n(100>=n>=0),接下来n行每行一个字符。

【输出形式】

输出第1行为4个整数,分别表示大写字母、小写字母、数字、其他字符的个数,第2行为一个数字,表示其中所有数字字符所对应的数字之和,当输入的字符中不包含数字字符时,没有第2行。

【样例输入1】

5
a
A
5
6
@

【样例输出1】

1 1 2 1
11

【样例输入2】

5
a
A
B
Z
!

【样例输出2】

3 1 0 1
//输入字符统计
//从键盘输入n个字符,请分别统计大写字母、小写字母、数字、其他字符的个数并输出;还需要输出所有数字字符之和。
#include<iostream>
using namespace std;
int main()
{
	int n,c1=0,c2=0,c3=0,c4=0,s=0;
	char ch;
	cin>>n;
	while(n--){
		cin>>ch;
		if(ch>='A' && ch<='Z'){
			c1+=1; //大写字母 
		}else if(ch>='a' && ch<='z'){
			c2+=1; //小写字母 
		}else if(ch>='0' && ch<='9'){
			c3+=1; //数字 
			s+=ch-'0'; //求和 
		}else{
			c4+=1; //其他字符 
		}
	}
	cout<<c1<<" "<<c2<<" "<<c3<<" "<<c4<<endl;
	if(c3!=0){ //判断有无数字 
		cout<<s<<endl;
	}
	return 0;
}

7.四个数排序

【问题描述】

从键盘输入4个整数,将其按照从大到小的顺序输出。
【输入形式】

输入一行4个整数
【输出形式】

在一行中,输出排序后的4个整数
【样例输入】

15 234 5 18
【样例输出】

234 18 15 5

//四个数排序
//从键盘输入4个整数,将其按照从大到小的顺序输出。
#include<iostream>
using namespace std;
int main()
{
	int arr[4]={0};
	for(int i=0;i<4;i++){
		cin>>arr[i];
	}
	for(int i=0;i<4;i++){
		for(int j=i+1;j<4;j++){
			if(arr[i]<arr[j]){
				int tem=arr[i];
				arr[i]=arr[j];
				arr[j]=tem;
			} //冒泡排序 
		}
	}
	for(int i=0;i<4;i++){
		cout<<arr[i]<<" ";
	}
	return 0;
}

8.数字单词 

【问题描述】

输入一个字符,如果为数字字符0-9,则输出其对应英文单词(Zero、One、...、Nine),否则输出Other。
【输入形式】

一行一个字符
【输出形式】

输出一个单词
【样例输入】

5
【样例输出】

Five

//数字单词
//输入一个字符,如果为数字字符0-9,则输出其对应英文单词(Zero、One、...、Nine),否则输出Other。
#include<iostream>
using namespace std;
int main()
{
	char ch;
	cin>>ch;
	if(ch>='0' && ch<='9'){
		switch(ch){
			case '0':
				cout<<"Zero";
				break;
			case '1':
				cout<<"One";
				break;
			case '2':
				cout<<"Two";
				break;
			case '3':
				cout<<"Three";
				break;
			case '4':
				cout<<"Four";
				break;
			case '5':
				cout<<"Five";
				break;
			case '6':
				cout<<"Six";
				break;
			case '7':
				cout<<"Seven";
				break;
			case '8':
				cout<<"Eight";
				break;
			case '9': //switch语句讨论 
				cout<<"Nine";
				break;
		}
	
	}else{
		cout<<"Other";
	}
	return 0;
}

9.数小木块

【问题描述】

在墙角堆放着一堆完全相同的正方体小木块,如下图所示:

因为木块堆得实在是太有规律了,你只要知道它的层数就可以计算所有木块的数量了。


【输入形式】

只有一个整数 n ,表示这堆小木块的层数,已知1 <= n <= 100 。

【输出形式】

只有一个整数,表示这堆小木块的总数量。

【样例输入】

5
【样例输出】

35

//数小木块
//在墙角堆放着一堆完全相同的正方体小木块,
//因为木块堆得实在是太有规律了,你只要知道它的层数就可以计算所有木块的数量了。


#include<iostream>
using namespace std;
int main()
{
	int n,s=0,t=0;
	cin>>n;
	for(int i=1;i<=n;i++){
		t+=i; //当前层的木块数目
		s+=t;  //木块总数 
	}
	cout<<s<<endl;
	return 0;
}

10.桃子问题 

【问题描述】

某人摘下一些桃子,第一天卖掉一半,又吃了一个,第二天卖掉剩下的一半,又吃了一个,以后各天都是如此处理,到第n天发现只剩下一只桃子,试编写程序计算一共摘的桃子个数。

【输入形式】

一行:一个整数n(1 < n <= 20)

【输出形式】

一行:一个整数,表示一开始的桃子个数。

【样例输入】

2
【样例输出】

4

//桃子问题
//某人摘下一些桃子,第一天卖掉一半,又吃了一个,第二天卖掉剩下的一半,又吃了一个,
//以后各天都是如此处理,到第n天发现只剩下一只桃子,试编写程序计算一共摘的桃子个数。
#include<iostream>
using namespace std;
int main()
{
	int n,y=1; //记录桃子总数 
	cin>>n;  
	while(n>1){
		y=(y+1)*2; //递推 
		n-=1;
	}
	cout<<y<<endl;
	
	return 0;
}

11.三个人比大小 

【问题描述】

        输入A、B、C3个人的生日,格式为:yyyy mm dd,按照年龄从大到小输出。
【输入形式】

        输入有3行,分别表示A、B、C三个人的生日。
【输出形式】

        ABC或ACB或BAC或BCA或CAB或CBA
【样例输入】

2018 1 12
1997 7 1
2000 12 31

【样例输出】

BCA

【技巧提示】

生日比较需要按照优先级分别比较年月日,可以考虑将年月日转化为一个整数 s=10000*year+100*month+day 
 

//三个人比大小
//输入A、B、C3个人的生日,格式为:yyyy mm dd,按照年龄从大到小输出。
#include<iostream>
using namespace std;
int main()
{
	int y1,m1,d1,y2,m2,d2,y3,m3,d3;
	cin>>y1>>m1>>d1>>y2>>m2>>d2>>y3>>m3>>d3;
	int s1=y1*10000+m1*100+d1;
	int s2=y2*10000+m2*100+d2;
	int s3=y3*10000+m3*100+d3; //转化成一个整数 
	if(s1>s2&&s2>s3){
		cout<<"CBA";
	}else if(s1>s3&&s3>s2){
		cout<<"BCA";
	}else if(s2>s1&&s1>s3){
		cout<<"CAB"; //分类讨论 
	}else if(s2>s3&&s3>s1){
		cout<<"ACB";
	}else if(s3>s1&&s1>s2){
		cout<<"BAC"; 
	}else if(s3>s2&&s2>s1){
		cout<<"ABC";
	}
	return 0;
}

12.小希找工作 

【问题描述】

         小希看到小芳很容易就找到了她满意的工作,他也想去尝试一下,并参考了小芳找工作的方法。

         与小芳不同的是,小希希望根据三个条件综合评估来选择。

                月薪得分:  月薪/5000*100取整

                带薪假得分:有20分,无0分

                离家距离得分:不超过2000公里为100分。每超过200公里减10分,不足200公里按200公里计算,直至0分为止。

          给定3个公司A、B、C的数据,根据分数最大来判断小希应该接受哪家公司的offer。如果分数相同,按照A、B、C的顺序进行优先选择。

【输入形式】

           输入为3行(分别为A、B和C公司的数据),每行包含3个数据,分别表示公司给定的月薪(整数)、有无带薪休假(y-有,n-无)、离家距离(整数),所有的输入保证没有两个公司最终的得分相等。
【输出形式】

            输出一行一个字符(A或B或C,表示小希应该选择的公司)
【样例输入】

24723 y 23588
37395 n 32313
36389 n 21061

【样例输出】

B
//小希找工作
// 小希看到小芳很容易就找到了她满意的工作,他也想去尝试一下,并参考了小芳找工作的方法。
//
//         与小芳不同的是,小希希望根据三个条件综合评估来选择。
//
//                月薪得分:  月薪/5000*100取整
//
//                带薪假得分:有20分,无0分
//
//                离家距离得分:不超过2000公里为100分。每超过200公里减10分,不足200公里按200公里计算,直至0分为止。
//
//          给定3个公司A、B、C的数据,根据分数最大来判断小希应该接受哪家公司的offer。如果分数相同,按照A、B、C的顺序进行优先选择。
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int s1,d1,s2,d2,s3,d3,f1=0,f2=0,f3=0;
	char c1,c2,c3;
	cin>>s1>>c1>>d1>>s2>>c2>>d2>>s3>>c3>>d3;
	f1+=(s1/5000)*100;
	f2+=(s2/5000)*100;
	f3+=(s3/5000)*100; //月薪得分计算 
	if(c1=='y'){
		f1+=20;
	}
	if(c2=='y'){
		f2+=20; 
	}
	if(c3=='y'){
		f3+=20;
	}
	if(d1<=2000){
		f1+=100;
	}else if(d1<=4000){
		f1+=100-ceil((d1-2000)/200.0)*10;
	}
	if(d2<=2000){
		f2+=100;
	}else if(d2<=4000){
		f2+=100-ceil((d2-2000)/200.0)*10; //向上取整 
	}	
	if(d3<=2000){
		f3+=100;
	}else if(d3<=4000){
		f3+=100-ceil((d3-2000)/200.0)*10;
	}
	if(f1>=f2&&f1>=f3){
		cout<<"A";
	}else if(f2>=f3&&f2>f1){ //结果判断 
		cout<<"B";
	}else if(f3>f2&&f3>f1){
		cout<<"C";
	}
	return 0;
}

13.个人所得税计算

【问题描述】

       2018年8月31日,第十三届全国人民代表大会常务委员会第五次会议《关于修改〈中华人民共和国个人所得税法〉的决定》,将个税免征额由3500元提高到5000元。 缴纳个人所得税是收入达到缴纳标准的公民应尽的义务,个人所得税率是由国家相应的法律法规规定的,根据个人的收入计算。

QQ图片20181022094215.jpg

      个人所得税的计算公式为:

              应缴税额=(月收入-5000-专项扣除)* 税率 - 速算扣除数

      请根据输入的月收入和专项扣除额计算相应的应缴税额。

【输入形式】

       输入为一行两个整数,分别表示月收入和专项扣除额。
【输出形式】

       输出为一个数,即缴税额。
【样例输入】

10000 2000

【样例输出】

90
//个人所得税计算
//个人所得税的计算公式为:
//
//              应缴税额=(月收入-5000-专项扣除)* 税率 - 速算扣除数
//
//      请根据输入的月收入和专项扣除额计算相应的应缴税额。
#include<iostream>
using namespace std;
int main()
{
	int s,k,y=0;
	cin>>s>>k;
	if((s-5000-k)>=0){ //保证>=0 
		if((s-5000-k)<=3000){
		y=(s-5000-k)*0.03-0;
		}else if((s-5000-k)<=12000){
			y=(s-5000-k)*0.1-210;
		}else if((s-5000-k)<=25000){
			y=(s-5000-k)*0.2-1410;
		}else if((s-5000-k)<=35000){
			y=(s-5000-k)*0.25-2660;
		}else if((s-5000-k)<=55000){
			y=(s-5000-k)*0.3-4410;
		}else if((s-5000-k)<=80000){
			y=(s-5000-k)*0.35-7160;
		}else if((s-5000-k)>80000){
			y=(s-5000-k)*0.45-15160; //分类讨论 
		}
	}
	
	cout<<y<<endl;
	return 0;
}

14.走路去上课还是骑车去上课? 

【问题描述】

 校园里,共享单车满地都是,有时候还真方便。但实际上。并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁上车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。

【输入形式】

输入一行,包含一个整数,表示一次办事要行走的距离,单位为米。

【输出形式】

输出一行,如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。

【样例输入】

120

【样例输出】

Bike

【样例说明】

为避免浮点误差,本题中应使用双精度进行计算。

//走路去上课还是骑车去上课?
//校园里,共享单车满地都是,有时候还真方便。但实际上。并非去办任何事情都是骑车快,
//因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁上车的时间为27秒;
//停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,
//是骑车快还是走路快。如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int d;
	double t1,t2;
	cin>>d;
	cout<<fixed<<setprecision(6); //设置精度 
	t1=50+d/3.0;
	t2=d/1.2;
	if(t1>t2){
		cout<<"Walk";
	}else if(t2>t1){
		cout<<"Bike";
	}else{
		cout<<"All";
	}
	return 0;
}

15.运输打折问题 

 

【问题描述】

某运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:

里程(单位:公里)

折扣

s<250

0

250≤s<500

2%

500≤s<1000

5%

1000≤s<2000

8%

2000≤s<3000

10%

3000≤s

15%

其中基本运费为每吨每公里1元,现请你帮助该运输公司设计自动计费程序来计算运输费用。
【输入形式】

输入为一行两个整数,分别表示运输的载重(吨)和里程(公里)。
【输出形式】

输出一行一个整数,表示运输费用
【样例输入】

1 200
【样例输出】

200

//运输打折问题
//某运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:
//
//里程(单位:公里)
//
//折扣
//
//s<250
//
//0
//
//250≤s<500
//
//2%
//
//500≤s<1000
//
//5%
//
//1000≤s<2000
//
//8%
//
//2000≤s<3000
//
//10%
//
//3000≤s
//
//15%
//
//其中基本运费为每吨每公里1元,现请你帮助该运输公司设计自动计费程序来计算运输费用
#include<iostream>
using namespace std;
int main()
{
	int m,d,s;
	cin>>m>>d;
	if(d<250){
		s=m*d;
	}else if(d<500){
		s=m*d*(1-0.02);
	}else if(d<1000){
		s=m*d*(1-0.05);
	}else if(d<2000){
		s=m*d*(1-0.08);
	}else if(d<3000){
		s=m*d*(1-0.1);
	}else{
		s=m*d*(1-0.15);
	}
	cout<<s<<endl;
	return 0;
 } 

16.三个数 

【问题描述】

       有三个非负整数a、b、c,现按随机顺序给出它们的两两和以及总和4个整数,即a+b、a+c、b+c、a+b+c,注意,给出的4个数的顺序是随机的,请根据这四个数求出a、b、c是多少?
【输入形式】

       输入为一行4个正整数,x1、x2、x3、x4 (0≤xi≤109),表示a+b、a+c、b+c、a+b+c结果的随机顺序的值,输入保证能求出结果。
【输出形式】

      输出为一行,以非递减的方式输出a、b、c,注意a、b、c可能相等。
【样例输入1】

3 6 5 4

【样例输出1】

1 2 3

【样例输入2】

201 101 101 200

【样例输出2】

1 100 100
//三个数
//有三个非负整数a、b、c,现按随机顺序给出它们的两两和以及总和4个整数,
//即a+b、a+c、b+c、a+b+c,注意,给出的4个数的顺序是随机的,请根据这四个数求出a、b、c是多少?
#include<iostream>
using namespace std;
int main()
{
	long long x1,x2,x3,x4;  //注意数字范围 
	int arr[4];
	cin>>x1>>x2>>x3>>x4;
	long long s=(x1+x2+x3+x4)/3;  //a+b+c
	arr[0]=s-x1;
	arr[1]=s-x2; //假设为对应的值 
	arr[2]=s-x3;
	arr[3]=s-x4;
	for(int i=0;i<4;i++){
		for(int j=i+1;j<4;j++){
			if(arr[i]>arr[j]){
				int tem=arr[i];
				arr[i]=arr[j];
				arr[j]=tem; //排序 
			}
		}
	}  //必定arr[0]=0 
	cout<<arr[1]<<" "<<arr[2]<<" "<<arr[3]<<endl;
	
	return 0;
}

17.爬虫

【问题描述】

       一条虫子在n英寸深的井底,每次一分钟爬行u英寸,但是它在再次爬行前必须先休息1分钟, 在休息过程中它将滑落d英寸,在反复向上爬行和休息后,多长时间虫子能爬出这口井?在此过程中,分钟的小数部分向上取整,如果攀爬结束时虫子正好到达井的顶部,则视为虫子已经爬出。假定d<u,n<100,当n=0时输入结束。

【输入形式】

       输入包括多个测试用例。每行包含3个正整数n、u、d,为上面所提到的值。

【输出形式】

      每个测试用例输入一行,表示虫子爬出井的时间。

【样例输入】

10 2 1
20 3 1
0 0 0

【样例输出】

17
19
// 爬虫
// 一条虫子在n英寸深的井底,每次一分钟爬行u英寸,但是它在再次爬行前必须先休息1分钟,
//  在休息过程中它将滑落d英寸,在反复向上爬行和休息后,多长时间虫子能爬出这口井?
//  在此过程中,分钟的小数部分向上取整,如果攀爬结束时虫子正好到达井的顶部,则视为虫子已经爬出。假定d<u,n<100,当n=0时输入结束。
#include<iostream>
using namespace std;
int main()
{
	int n,u,d,t;
	while(true){
		cin>>n>>u>>d;
		t=0;
		if(n==0){
			break;
		}
		while(n>0){
			n-=u; //爬行 
			t+=1;
			if(n<=0){ //刚好到顶 
				break;
			}
			n+=d;  //滑落 
			t+=1; //休息 
		}
		cout<<t<<endl;
	}
	return 0;
}

18.这个月有多少天?

【问题描述】

输入年份和月份,输出该月份的天数。
【输入形式】

输入一行,两个整数,分别为年份和月份。
【输出形式】

一个整数,表示该月份的天数
【样例输入】

2018 3
【样例输出】

31

//这个月有多少天?
//输入年份和月份,输出该月份的天数。
#include<iostream>
using namespace std;
int main()
{
	int year,month;
	cin>>year>>month;
	int leap=0; //闰年标记
	if((year%4==0 && year%400!=0) || year%100==0){
		leap=1; //判断闰年 
	} 
	switch(month){
		case 1:
			case 3:
				case 5:
					case 7:
						case 8:
							case 10:
								case 12:
									cout<<31<<endl;
									break;
									case 4:
										case 6:
											case 9:
												case 11:
													cout<<30<<endl;
													break;
												case 2:
													cout<<28+leap<<endl;
													break; //特殊情况 
	}
	return 0;
}

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

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

相关文章

闭循环低温恒温器的使用注意事项

与液氮恒温器相比&#xff0c;闭循环低温恒温器显得稍微复杂一些&#xff01;这主要表现在组成部分、体积重量、使用操作、升降温时间等方面。闭循环低温恒温器主要由冷头、氦压缩机、两根氦气连管组成&#xff0c;配套设备还有控温仪、真空泵&#xff0c;可能还有循环水冷机。…

离散数学实践(2)-编程实现关系性质的判断

*本文为博主本人校内的离散数学专业课的实践作业。由于实验步骤已经比较详细&#xff0c;故不再对该实验额外提供详解&#xff0c;本文仅提供填写的实验报告内容与代码部分&#xff0c;以供有需要的同学学习、参考。 -------------------------------------- 编程语言&#xff…

VM虚拟机逆向 --- [NCTF 2018]wcyvm 复现

文章目录 前言题目分析 前言 第四题了&#xff0c;搞定&#xff0c;算是独立完成比较多的一题&#xff0c;虽然在还原汇编的时候还是很多问题。 题目分析 代码很简单&#xff0c;就是指令很多。 opcode在unk_6021C0处&#xff0c;解密的数据在dword_6020A0处 opcode [0x08, …

谈一谈SQLite、MySQL、PostgreSQL三大数据库

每一份付出&#xff0c;必将有一份收货&#xff0c;就像这个小小的果实&#xff0c;时间到了&#xff0c;也就会开花结果… 三大数据库概述 SQLite、MySQL 和 PostgreSQL 都是流行的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;但它们在功能、适用场景和性…

【UE】从UI拖拽生成物体 —— 更改位置与定点销毁

本篇在上一篇博客&#xff08;【UE】从UI中拖拽生成物体-CSDN博客&#xff09;基础上继续增加更改生成的Actor的位置与定点销毁Actor的功能。 目录 效果 步骤 一、修改生成好的Actor位置 解决问题一&#xff1a;从UI拖出多个actor后&#xff0c;只能对第一个拖出的actor的…

传智杯-21算法赛初赛B组题目详细解法解析-AB题(C/C++、Python、Java)

🚀 欢迎来到 ACM 算法题库专栏 🚀 在ACM算法题库专栏,热情推崇算法之美,精心整理了各类比赛题目的详细解法,包括但不限于ICPC、CCPC、蓝桥杯、LeetCode周赛、传智杯等等。无论您是刚刚踏入算法领域,还是经验丰富的竞赛选手,这里都是提升技能和知识的理想之地。 ✨ 经典…

UG\NX二次开发 先设置默认颜色再创建对象

文章作者:里海 来源网站:里海NX二次开发3000例专栏 感谢粉丝订阅 感谢 qq_42461973 订阅本专栏,非常感谢。 简介 有粉丝问,可不可以先设置默认颜色再创建对象?这个是可以的,下面是例子: 效果 代码 #include "me.hpp" using namespace std;

java/springboot服务第三方接口安全签名(Signature)实现方案

前言 有的时候&#xff0c;我们需要把我们系统里的接口开放给第三方应用或企业使用&#xff0c;那第三方的系统并不在我们自己的认证授权用户体系内&#xff0c;此时&#xff0c;要如何保证我们接口的数据安全和身份识别呢&#xff1f; 在为第三方系统提供接口的时候&#xf…

筑基新一代数据底座,中国科大让智慧科研更有数

著名科学哲学家库恩在《科学革命的结构》中认为&#xff0c;范式是科研的一种理论体系&#xff0c;范式的突破会带来一系列科学革命。 如今在科研领域&#xff0c; 人工智能不断打破科研边界&#xff0c;AI for Science被视为下一个科研新范式&#xff0c;不仅为科学研究带来了…

Cesium:为地图添加指北针、缩放按钮和比例尺

作者&#xff1a;CSDN _乐多_ 网上找的很多代码用不了。本文记录了Cesium中为地图添加指北针、缩放按钮和比例尺的可用代码。 文章目录 一、代码 一、代码 const viewer new Cesium.Viewer(cesiumContainer, {// ...navigationHelpButton: false,sceneModePicker: false,sc…

校验验证码是否过期(定时刷新验证码)

需求&#xff1a; 我们在登录的时候会遇到通过接口请求验证码的操作&#xff0c;这里的验证码会有过期的时间&#xff0c;当我们验证码过期了&#xff0c;我们要进行重新刷新验证码。 我们这里根据后端返回的当前时间和过期时间判断&#xff0c;过期的时间超过了当前时间的时候…

Java面向对象 下(六)

Java面向对象 ( 下) 观看b站尚硅谷视频做的笔记 文章目录 Java面向对象 ( 下)1、 关键字&#xff1a;static1.1、static 的使用1.1.1、static 修饰属性1.1.2、 static 修饰方法1.1.3、 static 修饰代码块1.1.4、 static 修饰内部类1.1.5、类变量 vs 实例变量内存解析 1.2、 自…

关于msvcp120.dll丢失的解决方法详解,快速解决dll丢失问题

在计算机使用过程中&#xff0c;经常会遇到“msvcp120.dll丢失”的错误提示。这个错误提示通常出现在运行某些程序或游戏时&#xff0c;造成相关应用程序可能无法正常启动或运行。那么&#xff0c;究竟是什么原因导致了msvcp120.dll文件的丢失呢&#xff1f;本文将详细解析msvc…

【QT】文件读写

新建项目 加入控件 整体做一个布局 功能&#xff1a;选择文件路径&#xff0c;打开文件&#xff08;两种文件格式&#xff1a;utf-8、GBK&#xff09; #include "widget.h" #include "ui_widget.h" #include <QPushButton> #include <QFileDial…

云产品ECS免费试用获取奖励步骤

文章目录 1、获取活动链接2、报名参加3、试用产品领取产品试用权限配置安全组访问应用提交作品 4、提交任务获取奖励 1、获取活动链接 活动时间2023.11.1&#xff5e;2023.11.30 名额有限&#xff0c;先到先得 进群群主获取活动链接 2、报名参加 直接点击链接进入小程序进行…

【带头学C++】----- 三、指针章* ---- 3.1指针变量的定义

指针在C语言是核心&#xff0c;在C中更是核心。所以本章节将详细讲解指针的使用方法以及指针的一些特殊用法&#xff0c;和引用的区别&#xff0c;以及指针涉及到一些算法基础。通过案例引导&#xff0c;使得能更清楚命明白。在C中的指针是一种数据类型&#xff0c;其使用方法和…

【Java 进阶篇】Java ServletContext功能详解:域对象的使用

Java ServletContext是Java Web应用程序中的一个关键组件&#xff0c;它提供了一种在不同Servlet之间共享数据的机制。这种共享通过域对象来实现&#xff0c;包括ServletContext域、Session域和Request域。在本篇博客中&#xff0c;我们将重点关注ServletContext域&#xff0c;…

批处理写定时关机和开机自动运行老化视频

扬创科技出品的X86平板电脑&#xff08;7寸-21.5寸 6代7代10代酷睿系列 、J4125 、J1900&#xff0c;承接客户各种尺寸定制&#xff09;视频方式老化测试。 需求&#xff1a;1、开机启动自动运行老化视频。 2、下午5点25正式关机。 1、开机启动自动运行老化视频。 start &quo…

ERP系统物料管理

一、ERP系统物料管理的概述 ERP系统物料管理是企业资源计划系统中的一个关键模块&#xff0c;用于管理企业的物料信息、库存和供应链活动。通过集成各个部门的信息和流程&#xff0c;物料管理模块提供了全面的物料控制和管理能力&#xff0c;包括物料采购、入库、出库、库存调…

js 根据word文档模板导出内容

一、创建word导出模板 1、本地创建一个test.docx 2、将最终需要的文档内容及样式编辑完成(图1) 3、将所需动态值的位置,替换为变量参数(图2) 注: 动态值书写 图1 图2 模板值的书写要求 二、项目中使用 1、安装依赖 npm install docxtemplater-image-module-free --save n…