1.16
#include "stdafx.h"
#include "iostream"
//2018_7_25,假设全是整数了,可以改数据类型
using namespace std;
int main()
{
size_t a, b, c;
cout << "please enter three number" << endl;
cin >> a >> b >> c;
if (a >= b)
{
if (a >= c)//a最大
{
cout << a << endl;
if (b >= c)
{
cout << b << endl;
cout << c << endl;
}
else
{
cout << c << endl;
cout << b << endl;
}
}
else//a比b大,比c小
{
cout << c << endl;
cout << a << endl;
cout << b << endl;
}
}
else//a比b小
{
if (a >= c)
{
cout << b << endl;
cout << a << endl;
cout << c << endl;
}
else
{
if (c >= b)
{
cout << c << endl;
cout << b << endl;
cout << a << endl;
}
else
{
cout << b << endl;
cout << c << endl;
cout << a << endl;
}
}
}
system("pause");
return 0;
}
1.17
#include "stdafx.h"
#include "iostream"
#include "stddef.h"
using namespace std;
void feibonaqi(int k, int n);
int main()
{
cout << "请输入阶数与项数" << endl;
int size, sequence;
cin >> size >> sequence;
feibonaqi(size, sequence);
system("pause");
return 0;
}
void feibonaqi(int k, int n)
{
int number[999] = { 0 };//数组长度应该足够大,但不知道怎么申请足够大的空间
for (int i = 0;i != k;i++)
{
if (i != k - 1) number[i] = 0;
else number[i] = 1;
}
number[k] = 1;
for (int j = k + 1;j != n + 1;j++)
{
for (int i = 0;i != k;i++)
number[j] = number[j] + number[j - i - 1];//k项的和,找对应关系
}
cout << "result is " << number[n]<< endl;
}
1.20
#include "stdafx.h"
#include "iostream"
#include "stddef.h"
#include<vector>
using namespace std;
//2018_7_26 数据结构1.20 全部写在main函数里了...
int main()
{
cout << "请输入各系数,初始值x0,系数个数n" << endl;
vector<int> array1,array2;//一个用来放系数,一个用来放x的乘积
int number,x0,n;
while (cin >> number&&number!=99999)
array1.push_back(number);
auto begin = array1.begin(), end = array1.end();
--end;//使end指向最后一个元素,因为原来指向最后一个元素后面的位置
--end;//使end指向倒数第二个元素
x0 = *end;
end = end + 2;//end归位
n = array1.size() - 2;
//开始算x的乘积
array2.push_back(1);
array2.push_back(x0);
for (int i = 2;i != n;i++)//共有n-2个x的乘幂,前两个不管,因为已经存好了
{
int product = x0;
for (int j = 1;j != i;j++)//每个x的乘幂乘i次
{
product = product * product;
}
array2.push_back(product);
}
//开始计算系数和幂的乘积
int sum=0;
auto begin2 = array2.begin(), end2 = array2.end();
sum = sum + (*begin);
++begin;
sum = sum + (*begin)*x0;
++begin;
begin2 = begin2 + 2;//从第三项开始配对
while (begin2 != end2)
{
sum = sum + (*begin)*(*begin2);
++begin;
++begin2;
}
cout << sum << endl;
system("pause");
return 0;
}