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;
}
相关推荐
执笔论英雄2 分钟前
【RL】 ROLL中负载均衡
运维·算法·负载均衡
星辞树6 分钟前
从计数到预测:深入浅出词向量 (Word Vectors) —— Stanford CS224n 作业实战记录
算法
JarryStudy7 分钟前
自动调优在Triton-on-Ascend中的应用:从参数优化到性能极致挖掘
人工智能·算法·昇腾·cann·ascend c
CoderYanger10 分钟前
递归、搜索与回溯-穷举vs暴搜vs深搜vs回溯vs剪枝:13.子集
java·算法·leetcode·机器学习·剪枝·1024程序员节
乌萨奇也要立志学C++15 分钟前
【Linux】线程概念 线程与进程深度剖析:虚实内存转换、实现机制与优缺点详解
linux·c++
黑客思维者15 分钟前
底层冗余性原理探秘模型剪枝(Pruning)为何能“无损”压缩模型?
算法·机器学习·剪枝
爱学习的小邓同学16 分钟前
数据结构 --- 二叉搜索树
数据结构·c++
浪漫血液&17 分钟前
索引为什么用B+树而不是B树
数据结构·数据库·b树·b+树
Wild_Pointer.23 分钟前
高效工具实战指南:CMake构建工具
c++·软件构建
疯疯癫癫才自由24 分钟前
爬取Leetcode Hot 100 题单
算法·leetcode