PASCAL 编一个PASCAL程序,给定一堆正整数,要求分成两堆,两堆数的和分别为S1和S2,使S1²-S2
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/30 18:21:44
PASCAL
编一个PASCAL程序,
给定一堆正整数,要求分成两堆,两堆数的和分别为S1和S2,使S1²-S2²最小
【输入】
第一行n,表示共有n个数
第二行共n个用空格隔开的正整数a[i],表示给定的一堆正整数
【样例输入】
4
1 2 3 4
【样例输出】
0
编一个PASCAL程序,
给定一堆正整数,要求分成两堆,两堆数的和分别为S1和S2,使S1²-S2²最小
【输入】
第一行n,表示共有n个数
第二行共n个用空格隔开的正整数a[i],表示给定的一堆正整数
【样例输入】
4
1 2 3 4
【样例输出】
0
样例说明1和4一堆,2和3一堆,5*5-5*5 = 0题目分析题目给出n个数,让你将这n个数分成两组,使得两组和的平方差的绝对值最小,输出此时这两组的和的平方差的绝对值.算法分析这道题经过仔细分析不难发现,其实是一道0/1背包的变形版.0/1背包我在这里不再重点提及.首先我们用0/1背包的思想,求出这n个数能够到达的所有值,记这n个数的总和为s,然后我们将所有可能到达的值,用循环i进行逐一计算,当这个值存在时,即此时的值为abs(sqr(s-i)-sqr(i)),就这样求出全部这些值中的最小值即可.参考程序var
i,j,k,m,n,s,t,min:longint;
f:array[0..100000] of boolean;
a:array[1..1000] of longint;
begin
read(n);
s:=0;
for i:=1 to n do
begin
read(a[i]);
s:=s+a[i];
end;
f[0]:=true;
for i:=1 to n do
begin
for j:=s downto a[i] do
if f[j-a[i]] then f[j]:=true;
end;
min:=maxlongint;
for i:=1 to s do
if f[i] then
begin
if abs(sqr(i)-sqr(s-i))<minthen min:=abs(sqr(i)-sqr(s-i));
end;
writeln(min);
end.
再问: 话说abs是什么
再答: 就是求绝对值。
若x大于等于0,abs(x)=x,否则abs(x)=-x。
换句或说,就是符号取正号,数值不变。
i,j,k,m,n,s,t,min:longint;
f:array[0..100000] of boolean;
a:array[1..1000] of longint;
begin
read(n);
s:=0;
for i:=1 to n do
begin
read(a[i]);
s:=s+a[i];
end;
f[0]:=true;
for i:=1 to n do
begin
for j:=s downto a[i] do
if f[j-a[i]] then f[j]:=true;
end;
min:=maxlongint;
for i:=1 to s do
if f[i] then
begin
if abs(sqr(i)-sqr(s-i))<minthen min:=abs(sqr(i)-sqr(s-i));
end;
writeln(min);
end.
再问: 话说abs是什么
再答: 就是求绝对值。
若x大于等于0,abs(x)=x,否则abs(x)=-x。
换句或说,就是符号取正号,数值不变。
PASCAL 编一个PASCAL程序,给定一堆正整数,要求分成两堆,两堆数的和分别为S1和S2,使S1²-S2
c语言的问题编一个程序,将两个字符串s1,s2比较,如果s1>s2,输出一个正数;s1
S1,S2为两平面波波源,振动方向相同,它们的振动方程分别为和
如果s1和s2定义为字符,那么是否可以用s1==s2,s1>s2之类的比较?
体积相等的球和正方体的表面积分别为S1,S2,则S1 ,S2大小关系?
已知球体S1和S2,S1的体积为250,S2的体积为16,S1的表面积为75,求S2的表面积
设A B两地和A D两地之间的最短距离分别为S1 S2 则 S1和S2比例为多少?
周长都为4A的扇形和矩形的最大面积分别为S1,S2,则S1与S2的大小关系是______
质点做方向不变的匀变速直线运动加速度不为零,设在连续两段相等时间内质点的位移分别为s1和s2,则s1和s2之比值可能为
1)如图1,S1.S2和S3分别是以直角三角形的两直角边长A.B和斜边长C为直径的半圆的面积,你能找出S1.S2和S3之
如图1,S1.S2和S3分别是以直角三角形的两直角边长A.B和斜边长C为直径的半圆的面积,你能找出S1.S2和S3之%
一个矩形和一个正方形的周长是32cm,设正方形的面积为S1,矩形的面积为S2比较S1与S2的大小