标签:
结对伙伴:
纪烈翔
博客名:我们都是小怪兽
链接:http://www.cnblogs.com/qwer113/
设计思想:
1:随机输入一个数组
2:用直接穷举法求出该数组的最大和(把数组看成环形)
3:定义一个结构体,求出最大数组时,记录该数组的开始和结束的位置
4:输出

程序源代码:
//动态规划
//2016/3/26
#include "iostream"
using namespace std;
#define N 100
typedef struct data//定义结构体
{
int kaishi;
int jieshu;
int value;
}data;
int main()
{
//任意输入一个数组
int num = 0;
int A[N];
cout << "任意输入一个数组:";
while (true)
{
cin >> A[num];
num++;
if (getchar() == ‘\n‘)
{
break;
}
}
data Start;
data All;
//初始化
Start.kaishi = All.kaishi = 0;
Start.jieshu = All.jieshu = 0;
Start.value = All.value = A[0];
//直接穷举法求出该环形数组的最大值
//记录该数组的起始位置和结束位置
for (int i = 0; i < num; i++)
{
Start.value = 0;
Start.kaishi = i;
for (int j = i; j < num; j++)
{
Start.value += A[j];
Start.jieshu = j;
if (Start.value>All.value)
All = Start;
}
for (int j = 0; j < i; j++)
{
Start.value += A[j];
Start.jieshu = j;
if (Start.value>All.value)
All = Start;
}
}
//输出
cout <<"开始位置:"<<All.kaishi+1<<endl<<"结束位置:"<<All.jieshu+1<<endl<<"最后和为:"<< All.value<<endl;
return 0;
}
运行截图:



项目计划总结:

时间记录日志:

缺陷记录日志:

标签:
原文地址:http://www.cnblogs.com/qwer112/p/5325440.html