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

如果用程序:(delphi语言)算法应该是看得懂的.

var

i,j,k integer;

a:string;

begin

for 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;

解析看不懂?求助智能家教解答查看解答

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值