2014

1,写出计算Ack(m,n)的递归算法

#include<iostream>
using namespace std;
int A(int m,int n){
	if(m==0){
		return n+1;
	}
	else if(m>0&&n==0){
		return A(m-1,1);
	}
	else{
		return A(m-1,A(m,n-1));
	}
}

	
int main(){
	int m,n;
	cout<<"please input two number"<<endl;
	cin>>m>>n;
	cout<<A(m,n)<<endl;
	return 0;
}

2,写一个 IntToStr(int a)函数将一个整形数转换为字符串

//法一
#include<iostream>
#include<string>
#include<sstream> 
using namespace std;
string intToString(int num)
{
	stringstream s;
	s<<num;
	string str;
	s>>str;
	return str;
}
	
int main(){
	cout<<intToString(3)<<endl;
	return 0;
}

//法二
#include<iostream>
#include<string>
#include<sstream> 
using namespace std;
string intToString(int num)
{
	string r =" "; 
	while(num){
		int n =num%10;
		r =char('0'+n)+r;//将数字转换成字符拼接到r前面 
		num =num/10; 
	}
	return r;
}
	
int main(){
	cout<<intToString(15)<<endl;
	return 0;
}

3,//写一个 swap(int a[], int m, int n ),使得数组的前 m 项和后 n 项交换位置

//写一个 swap(int a[], int m, int n )
//使得数组的前 m 项和后 n 项交换位置
#include<iostream>
using namespace std;
void reverse(int a[],int m,int n){
	while(m<n){
		int temp = a[m];
		a[m] = a[n];
		a[n] = temp; 
		m++;
		n--;
	}
}
void swap(int a[],int m,int n,int k){
	reverse(a,0,m-1);//反转前m个数 
	reverse(a,m,k-n-1);//反转中间的数 
	reverse(a,k-n,k-1);//反转后n个数 
	reverse(a,0,k-1);//反转整个数组 
}
	
int main(){
	int a[]={1,2,3,5,6,7};
	int k= 6;
	swap(a,2,2,k);
	for(int i=0;i<k;i++){
		cout<<a[i]<<" ";
	}
	return 0;
}

4, 

//(1)写一个日期 Date 类,成员有年月日,成员函数有无参数构造函数、设置年月日的函数 setDate,还有一个打印函数 display
//(2)第二个类是员工类 Employee,成员有工号、姓名、身份证号、出生日期、受聘日期、聘用年限、月薪
//成员函数要有构造函数、改变出生日期函数、改变聘用年限函数、改变月薪函数、续聘函数(要求当续聘后的年龄大于 60 时给提示不能续聘)
//还有展示函数 display,需要有工号、姓名、身份证号、出生日期、聘用到期时间、聘用年限、年薪,注意第二个类会有 Date 类或其指针作为成员
#include<iostream>
#include<string>
using namespace std;
class Date{
	public:
		Date(int y=0,int m= 0,int d= 0):year(y),month(m),day(d){}
		Date(Date &d){
			this->year = d.year;
			this->month =d.month;
			this->day =d.day ;
		}
		void setDate(int y,int m,int d){
			year = y;
			month = m;
			day = d;
		}
		int getyear() const{
			return year;
		}
		int getmonth()const{
		return month;
		}
		int getday() const{
		return day;
		}
		void display()const{
			cout<<year<<"-"<<month<<"-"<<day; 
		}
	private:
		int year;
		int month;
		int day;
};
class Employee{
	public:
		Employee(long id,string name,long number,Date birthday,Date workday,int workyear,double salary){
			this->id = id;
			this->name = name;
			this->number = number;
			this->number = number;
			this->birthday = birthday;
			this->workday = workday;
			this->workyear = workyear;
			this->salary = salary;
		}
		void changeBirthday(Date newdate){
			birthday = newdate;
		}
		void changeworkyear(int newyear){
			workyear = newyear;
		}
		void changesalary(double newsalary){
			salary = newsalary;
		}
		void renewContract(int time) {  // 续聘
        if (birthday.getyear()+time > 60){
        	cout<<"续聘不成功"<<endl; 
		}
		else
		{
			workyear+=time; 
		}
	}
	//还有展示函数 display,需要有工号、姓名、身份证号、出生日期、聘用到期时间、聘用年限、年薪
		void display()const{
			 cout << "工号:" << id << " 姓名:" << name << " 身份证号:" << number << " 出生日期:";
             birthday.display();
			cout<<"聘用到期时间"<<workday.getyear() +workyear<<"年"<<workday.getmonth()<<"月"<<workday.getday() <<"日";
			cout<<"聘用年限"<<workyear<<"年薪"<<salary<<endl; 
			 
		}
		private:
		long id;
		string name;
		long number;
		Date birthday;
		Date workday;
		int workyear;
		double salary;
	};
	
int main(){
	Date birth(1990, 10, 25);  // 创建出生日期对象
    Date hire(2020, 5, 15);  // 创建聘用日期对象

    Employee emp(1001, "John Doe", 1234567890, birth, hire, 3, 5000.0);  // 创建员工对象

    emp.display();  //
	emp.renewContract(20);
	return 0;
}

 

相关推荐

  1. <span style='color:red;'>2014</span>

    2014

    2024-03-17 02:22:01      47 阅读
  2. [COCI2018-2019#1] Zamjena 解题记录

    2024-03-17 02:22:01       42 阅读
  3. VS2010 VS2015环境编译boost库

    2024-03-17 02:22:01       47 阅读
  4. P6492 [COCI2010-2011#6] STEP 题解

    2024-03-17 02:22:01       42 阅读
  5. [安洵杯 2019]game & [SUCTF2018]babyre

    2024-03-17 02:22:01       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 02:22:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 02:22:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 02:22:01       82 阅读
  4. Python语言-面向对象

    2024-03-17 02:22:01       91 阅读

热门阅读

  1. KY158 找x

    2024-03-17 02:22:01       37 阅读
  2. 两个数组的交集

    2024-03-17 02:22:01       38 阅读
  3. 2403d,无串插件传播uda

    2024-03-17 02:22:01       41 阅读
  4. 条款09:绝不在析构和构造中调用virtual函数

    2024-03-17 02:22:01       38 阅读
  5. 远程过程调用-buttonrpc源码解析1-序列化

    2024-03-17 02:22:01       41 阅读