回 帖 发 新 帖 刷新版面

主题:PASCAL入门问题S=1+2+3+...+n

试题描述】 
编程求解下列式子的值:S=1+2+3+...+n 
【输入描述】 
输入一行,只有一个整数n(1<=n<=1000)
【输出描述】
输出只有一行(这意味着末尾有一个回车符号),包括1个整数。
【输入样例】 
100
【输出样例】 
5050

解答:
var
   a,b,c:integer;
begin
     a:=0;
     c:=0;
     readln(b);
     while a<b do
     begin
          a:=a+1;
          c:=c+a;
     end;
     writeln(c);
end.
有问题没有,怎么通不过呢??请问热心人帮忙看看,谢了! 

回复列表 (共5个回复)

沙发

1、沒檢查邊界值。
2、算法太笨。

板凳

var
   n:integer
begin
   readln(n);
   writeln((1+n)*n/2);
end.

3 楼

直接用公式啊,后生可畏啊。

4 楼

var i,n,k:longint;
begin
    readln(n);
    k:=0;
    for i:=1 to n do
    k:=k+i;
    writeln(k);
end.

5 楼

这个可以用for做
var
i,s,n:integer;
begin
  readln(n);
  s:=0;
  for i:=1 to n do
  s:=s+i;
  writeln(s);
  readln
end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册