判断下列各对函数f(n)和g(n)
当时n→∞
哪个函数增长更快?
试用数学归纳法证明
试写一算法自大至小依次输出顺序读入的三个整数XY和Z的值
解
int max(int xint yint z)
{
if(x>y)
if(x>z) return x;
else return z;
else
if(y>z) return y;
else return z;
}
已知k阶斐波那契序列的定义为
试编写求k阶斐波那契序列的第m项值的函数算法k和m均以值调用的形式在函数参数表中出现
解k>为阶数n为数列的第n项
int Fibonacci(int kint n)
{
if(k<) exit(OVERFLOW);
int *px;
p=new int[k+];
if(!p) exit(OVERFLOW);
int ij;
for(i=;i<k+;i++){
if(i<k) p[i]=;
else p[i]=;
}
for(i=k+;i<n+;i++){
x=p[];
for(j=;j<k;j++) p[j]=p[j+];
p[k]=*p[k]x;
}
return p[k];
}
假设有ABCDE五个高等院校进行田径对抗赛各院校的单项成绩均已存入计算机并构成一张表表中每一行的形式为
项目名称 性别 校名 成绩 得分
编写算法处理上述表格以统计各院校的男女总分和团体总分并输出
解
typedef enum{ABCDE} SchoolName;
typedef enum{FemaleMale} SexType;
typedef struct{
char event[]; //项目
SexType sex;
SchoolName school;
int score;
} Component;
typedef struct{
int MaleSum;//男团总分
int FemaleSum;//女团总分
int TotalSum;//团体总分
} Sum;
Sum SumScore(SchoolName snComponent a[]int n)
{
Sum temp;
tempMaleSum=;
tempFemaleSum=;
tempTotalSum=;
int i;
for(i=;i<n;i++){
if(a[i]school==sn){
if(a[i]sex==Male) tempMaleSum+=a[i]score;
if(a[i]sex==Female) tempFemaleSum+=a[i]score;
}
}
tempTotalSum=tempMaleSum+tempFemaleSum;
return temp;
}
[] [] []