数据结构严蔚敏算法设计习题解答
第一章 绪论
1.16
#include<iostream>
using namespace std;
inline void sort_asc(int &a,int &b,int &c)
{
int tmp;
if(c>a)
{
tmp=a;
a=c;
c=tmp;
}
if(c>b){
tmp=c;
c=b;
b=tmp;
}
if(b>a)
{
tmp=b;
b=a;
a=tmp;
}
}
int main()
{
int a,b,c;
cin>>a>>b>>c;
sort_asc(a,b,c);
cout<<a<<" "<<b<<" "<<c;
return 0;
}
1.17
k阶斐波那契数列
#include<iostream>
using namespace std;
int fib(int k,int m)
{
if(k<2||m<0) return -1;
if(m<k-1)return 0;
else if((m==k-1||m==k))return 1;
else{
int *temp=new int[k],i;
for(i=1;i<=k-1;++i)
temp[i]=0;
temp[0]=temp[k-1]=1;
int s=0,sum;
for(i=k+1;i<=m;++i)
{
sum=2*temp[(i-1)%k]-s;
s=temp[i%k];
temp[i%k]=sum;
}
int r=temp[m%k];
return r;
}
}
int main()
{
int k,m;
cin>>k>>m;
cout<<fib(k,m);
return 0;
}
1.19
#include<iostream>
#include<cmath>
using namespace std;
#define max_int 200000000
#define arrsize 20
int a[arrsize]={
1};
int main()
{
int n;
cin>>n;
for(int i=2;i<n;++i)
{
a[i-1]=a[i-2]*2*(i-1);
cout<<a[i-1]<<endl;
if(max_int/(2*i)<a[i-