我有一个 石子合并问题 但是只能做出最大值 最小值求不出来 谁能帮帮忙补下求最小值那段程序啊! 高手们!

我有一个 石子合并问题 但是只能做出最大值 最小值求不出来 谁能帮帮忙补下求最小值那段程序啊! 高手们!,第1张

我实现了一下,经验证是对的。
下面是代码:(希望能给你带来帮助。)
#include <iostream>
#include <fstream>
using namespace std;
static int min = 0, max = 0;//全局变量
//前视声明:
void order(int num, int n);
void addMin(int num, int i);
void addMax(int num, int i, int n);
int main()
{
ifstream fin;
ofstream fout;
finopen("inputtxt");
foutopen("outputtxt");
int n;
fin >> n;
int num = new int[n];
for(int i = 0;i < n;i++)
fin >> num[i];
order(num, n);
for(i = 1;i < n;i++)//注意必须从第二个数开始遍历!
addMin(num, i);
for(i = n-2;i >= 0;i--)//注意必须从倒数第二个数开始遍历!
addMax(num, i, n);
fout << min << endl << max << endl;
return 0;
}
//对数组排序:
void order(int num, int n)
{
int i, j, tem;
for(i = 0;i < n;i++)
{
for(j = i;j < n;j++)
if(num[j] <= num[i])
{
tem = num[i];
num[i] = num[j];
num[j] = tem;
}
}
}
//从前往后累加得到最小值
void addMin(int num, int i)
{
int j;
for(j = 0;j <= i;j++)
min += num[j];
}
//从后往前累加得到最大值
void addMax(int num, int i, int n)
{
int j;
for(j = i;j < n;j++)
max += num[j];
}

以上就是关于我有一个 石子合并问题 但是只能做出最大值 最小值求不出来 谁能帮帮忙补下求最小值那段程序啊! 高手们!全部的内容,包括:我有一个 石子合并问题 但是只能做出最大值 最小值求不出来 谁能帮帮忙补下求最小值那段程序啊! 高手们!、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10079624.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存