第1个回答 2011-09-30
var
p:double; //指定为实数类型 用来保存累加值并返回
i,w:integer; //指定为整数类型
begin
for w:=1 to 100 do begin //循环2次
if w mod 2 <>0 then i:=1 //如果是奇数 1 3 5 7 9.... 则令i=1
else i:=-1; //否则是偶数 2 4 6 8 10... 则令i=-1 为了取偶数的相反数
p:=p+i*w; //累加到p
end;
showmessage(floattostr(p)); //循环100次就是1+(-2)+3+(-4)+5....+99+(-100)= - 50
end;
如果是1+2+3+4+...这样的计算你应该会吧 那相邻数为负数的话 只要取相
反值就行了呀 乘以1还是原来的值 乘-1的话 就变成相反值了 这就是原理
第2个回答 2011-09-30
看这样行不:
c#:
int GetCalc(int target)
{
if (target % 2 == 0)
{
return = target / 2 - target;
}
else
{
return = (target + 1) / 2;
}
}
Delphi:
function GetCalc(int target):integer;
begin
if(target mod 2 =0)
Result:=round(target/2)-target;
else
Result:=round((target+1)/2);
end;
第3个回答 2011-09-30
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
i,n,s:Integer;
begin
{ TODO -oUser -cConsole Main : Insert code here }
Write('请输入1正整数:');
Read(n);
s:=0;
for i:=1 to n do
if i mod 2 =1 then s:=s+i
else s:=s-i;
Writeln('1-2+3-4+5-6+7......+n='+inttostr(s));
Readln(n);
end.