您的位置:首页 > 编程语言

xx校园招聘编程题 : n级台阶、String类、数据交换并排序

2015-09-21 20:53 281 查看
xxx2016年校园招聘编程题 : n级台阶、String类、数据交换并排序

1、n级台阶

n级台阶,可以跳1级,也可以跳2级,总共有多少总跳法?

算法思想:算法为fun(n)

(1)当只有1级时,跳1级,只有1种方法;

(2)当只有2级时,可以只跳1级,也可以一次跳2级,总共有2种方法

(3)当为n>2级时,第1级跳1级,剩下的n-1级台阶跳法有fun(n-1);第一级跳2级时,剩下的n-2级跳法有fun(n-2)种。     

 

即fun(n)=fun(n-1)+fun(n-2).为Fibonacci数列.

</pre><pre name="code" class="cpp">int FunSteps(int n)
{
if(n==1||n==2)
return n;
else
return FunSteps(n-1)+FunSteps(n-2);
}


2、String类函数

#include<iostream>
#include<string>
using namespace std;

class String
{
private:
char *m_data;
public:
String(const char *str=NULL);
String(const String &another);
String & operator=(const String &rhs);
~String();
void print();

};
/
4000
/返回值类型 类名::函数名(参数)
String::String(const char *str)
{
if(str)
{
m_data=new char[strlen(str)+1];
strcpy(m_data,str);
}
else
{
m_data=new char[1];
*m_data='\0';
}
}
//新变量的拷贝构造函数
String::String(const String &another)
{
if(another.m_data)
{
m_data=new char[strlen(another.m_data)+1];
strcpy(m_data,another.m_data);
}
else
{
m_data=new char[1];
*m_data='\0';
}
}
//已有变量的=重载
String & String::operator=(const String &rhs)
{
if(this==&rhs)
return *this;
if(m_data)
delete [] m_data;
if(rhs.m_data)
{
m_data=new char[strlen(rhs.m_data)+1];
strcpy(m_data,rhs.m_data);
}
else
{
m_data=new char[1];
*m_data='\0';
}
return *this;
}
//析构函数
String::~String()
{
if(m_data)
delete [] m_data;
}
//输出
void String::print()
{
cout<<m_data;
}

int main(void)
{
String c("ok");
c.print();
String c1=c;  //拷贝构造函数
c1.print();
String c2;
c2=c;      //=重载函数
c2.print();

return 0;
}
3、数据交换并排序

n个乱序的数,其中只能有0与其他任何位置的数SWAP(交换),编程实现升序排序

考试时候没有时间了,读题没有读懂,后面经同学指点,应该是比较交换只能是下标为0的位置和其他任何位置交换,

即应该是冒泡法的排序思想:

#include<iostream>
using namespace std;

void bubble(int *a,int n)
{
int t;
for(int i=0;i<n;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(a[j]>a[0])
{
t=a[j];
a[j]=a[0];
a[0]=t;
}
}
t=a[0];
a[0]=a[n-1-i];
a[n-1-i]=t;
}
}

int main(void)
{
int a[10]={2,10,11,9,1,4,9,8,5,6};

bubble(a,10);

for(int i=0;i<10;i++)
cout<<a[i]<<" " ;
cout<<endl;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string 编程 排序