數據結構題集(嚴蔚敏版)第一章算法設計題

#include
#include<time.h>  
#include<math.h>
#include<limits.h>
using namespace std;
void order_reading(int X, int Y, int Z)//1.16
{
int num[3] = { X,Y,Z };
int temp = 0;
for (int j = 2; j >0; j--)
{
for (int i = 0; i < j; i++)
{
if (num[i] > num[i + 1])
{
temp = num[i];
num[i] = num[i + 1];
num[i + 1] = temp;
}
}
}
cout << num[2]<<" " << num[1] <<" "<< num[0] << endl;
}
int Fibonacci_sequence(int k, int m)//1.17
{
int value_m = 0,overflow=0;
if (m < k - 1) { return 0; }
if (m == k - 1) { return 1; }
if (m >= k)
{
int *value = new int[m];
for (int i = 0; i < k; i++)
{
value[i] = 0;
if (i == k - 1)
{
value[i] = 1;
}
}
for (int i = k; i < m; i++)
{
value[i] = value[i - 1] + value[i - 2];
if (value[i]<value[i-1])
{
cout << "Overflow!"<<endl;
overflow = 1;
break;
}
}
value_m = value[m-1];
if(overflow!=1)
cout << "The value is: " << value_m << endl;
delete []value;
return value_m;
}
}
void calculate(int a[],int arrsize,int num)//1.19
{
int value;
a[0] = 1;
for (int i = 1; i < num ;i++)
{
if (i >= arrsize)
{
cout << "Error!";
break;
}
a[i] = 2 * a[i - 1] * i;
if(a[i] < a[i-1])
{
cout << "Overflow!"<<endl;
cout << "MAXINT= " << INT_MAX << endl;
break;
}
cout << i << "!*2^" << i << "= " << a[i]<<endl;
}
}
int cal_equation(int x0, int coefficient[], int num)//1.20
{
int value=coefficient[0],last_value=1,value_x=1;
//for (int i = 0; i < num; i++)
//{
// value += coefficient[i] * pow(x0, i);//對多項式每一項獨立計算x的冪會耗費多餘的時間。
//}
for (int i = 1; i < num; i++)
{
   value_x = x0 * value_x;
   value += coefficient[i] * value_x;
}
return value;
}
void main()
{
/*
int num[3];
srand(time(NULL));
for (int i = 0; i < 3; i++)
num[i]=rand();
order_reading(num[0], num[1], num[2]);*/ //1.16


/*int m, k;
int value_m = 0;
do {
cout << "Enter k,m: ";
if (!(cin >> k >> m)) { break; }
value_m = Fibonacci_sequence(k, m);
} while (1);*/ //1.17


/*const int arrsize = 30;
int a[arrsize] = { 0 };
calculate(a, arrsize, 40);
*/ //1.19


/*int x0 = 0,num=0;
while (1)
{
cout << "Enter coefficient_num(at least 2): "; cin >> num;
if (num == 0) break;
int *coefficient = new int[num];
for (int i = num - 1; i >= 0; i--)
{
cout << "Enter " << i << " 's coefficient: "; cin >> coefficient[i];
}
cout << "Enter x0: "; cin >> x0;
int value = cal_equation(x0, coefficient, num);
cout << "Get the value: " << value << endl;
}*/ //1.20
system("pause");
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章