求教!输出和为100的连续数的算法是正整数!比如求和为1000的连续正整数,有个组合为:198、19

发布时间:2021-02-20 17:09:29

求教!输出和为100的连续数的算法是正整数!比如求和为1000的连续正整数,有个组合为:198、199、 200、201 、202

网友回答

如果用程序:(delphi语言)算法应该是看得懂的.
var i,j,k integer;
a:string;
beginfor i := 1 to 50 do begin
a:=inttostr(i);
for j:=i+1 to 50 do begin
k:=i+j;
a:=a+','+inttostr(j);
if k=100 then begin
showmessage(a);//可以定义一个字符串数组,每次赋这个字符串给数组.
break;//跳出内循环
end;if k>100 then begin
break;//跳出内循环
end;end;end;end;根据位数来算
1+2 = 3 + 2*n =100 n整数,不成立
1+2+3 =6 +3*n =100 n整数,不成立
1+2+3+4 =10 +4*n =100 n整数,不成立
1+2+3+4+5 =15 +5*n =100 n=17 成立 这组整数为18,19,20,21,22
1+2+3+4+5+6=21 +6n =100 n整数,不成立
1+2+3+4+5+6+7 =28 +7n =100 n整数,不成立
1+2+3+4+5+6+7 +8 = 36+8n =100 n =8 成立 这组数为9-16的连续整数
1+2+3+4+5+6+7 +8+9=45+9n =100 n整数,不成立
1+2+3+4+5+6+7 +8+9+10 =55 +10n =100 n整数,不成立
1+2+3+4+5+6+7 +8+9+10 +11 = 66+11n =100 n整数,不成立
1+2+3+4+5+6+7 +8+9+10 +11 +12=78+12n =100 n整数,不成立
1+2+3+4+5+6+7 +8+9+10 +11 +12+13=91+13n =100 n整数,不成立
后面就没有可能了 .根据这个算法也可以写出一个循环代码,比上面的更简单.
k:=0;m:=0;for i:= 2 to 13 do begin
for j:=1 to i do begin
k:=k+j;
end;k:=100-k;
m:=k mod i;
if m= 0 then
showmessage(inttostr(round(k/i)+1)+'--'+inttostr(round(k/i)+i));
end;
以上问题属网友观点,不代表本站立场,仅供参考!