如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。
URAL/1068
来自"NOCOW"
< URAL
VAR i,n:longint; sum:int64; BEGIN readln(n); if n>=1 then for i:=1 to n do inc(sum,i); if n<1 then for i:=n to 1 do inc(sum,i); writeln(sum); END.
program sum; var sumn:int64; n,i:longint; begin sumn:=0; readln(n); if n>1 then{分清楚downto和to} begin for i:=n downto 1 do sumn:=sumn + i; end else begin for i:= n to 1 do sumn:=sumn +i; end; if n=1 then sumn:=1; write(sumn); end.
Here may be a more simple and clear solution:
var i:longint; n,ans:int64; begin readln(n); if n<1 then for i:=n to 1 do inc(ans,i) else for i:=1 to n do inc(ans,i); writeln(ans); end.
//反正是等差数列,直接用公式吧,O(1)的。 var n:longint; begin readln(n); writeln((n+1)*(abs(n-1)+1) div 2); end.
//跟楼上大相径庭 只是无聊 分类讨论 program tt;
var sum,n:longint;
begin readln(n); if n>=1 then writeln((1+n)*n div 2) else writeln((1+n)*(2-n) div 2); end. by[黥]