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;
}
相关推荐
双叶83612 分钟前
(C++)任务管理系统(正式版)(迭代器)(list列表基础教程)(STL基础知识)
c语言·开发语言·数据结构·c++·list
s1533519 分钟前
数据结构-顺序表-拿硬币
数据结构
孤独的追光者25 分钟前
论文阅读|汽车虚拟环绕音响系统设计与实现策略的比较研究
算法·汽车·音频·信号处理·数字信号处理
七七七七0725 分钟前
类与对象【下篇】-- 关于类的其它语法
c语言·开发语言·c++
黄皮の电气鼠33 分钟前
C++:继承
开发语言·c++·算法
shylyly_34 分钟前
专题一_双指针_查找总价格为目标值的两个商品
c++·算法·leetcode·双指针·查找总价格为目标值的两个商品·和为s的两个数
zzj_26261035 分钟前
高精度乘法
算法
我尽力学37 分钟前
HashMap的get、put流程源码分析
算法·哈希算法
R-G-B1 小时前
【03】MFC入门到精通——MFC 添加控件 设置属性 按钮 文本框
c++·mfc·mfc添加控件
IT猿手1 小时前
2025最新智能优化算法:沙狐优化(Rüppell‘s Fox Optimizer,RFO)算法求解23个经典函数测试集,完整MATLAB代码
android·算法·matlab·迁移学习·优化算法·动态多目标优化·动态多目标进化算法