2011-07-26 14:52:00GrD

a002 簡易加法

嘛......這題要簡單可以很簡單(int加法),要難可以很難(大數,費式大數版,空白亂亂加...etc)

內容 :

請寫一個程式,讀入兩個數字,並求出它們的和。

輸入說明 :

每一組輸入有兩個整數(int)

輸出說明 :

輸出該兩整數的和(int)

範例輸入 :

5 10
1 2

範例輸出 :

15
3

提示 :

背景知識: 基本輸出輸入

----------------------------------------------------------------------
(**********************************************************************************)
(*  Problem: a002 "簡易加法"                                                  *)
(*  Language: PASCAL                                                              *)
(*  Result: AC (2ms, 606KB) on ZeroJudge                                          *)
(*  Author: grd at 2011-07-26 14:30:20                                            *)
(**********************************************************************************)

program easyplus;

var a,b:longint;

begin
        while not eof do begin
                readln(a,b);
                writeln(a+b);
        end;
end.

----------------------------------------------------------------------
基本上pascal的讀入寫出就是4個方式

read : 數值的話讀到下一個空格為止,字串則是讀入一行
ex:
input=1 2 3 4 5
while not eoln do
        read(num);
readln;    //必加readln; 如果沒加會陷入循環
----------------
readln:數值的話讀到下一個空格為止,字串則是讀入一行 (這裡跟read是一樣的)
         但是讀完後,指標到下一行去
ex:
input=1 2 3
readln(x,y,z);
----------------
write :不會換行的輸出
ex:
input(a)='ha','ha','ha','ha'
for run:=1 to 4 do
        write(a);

output=hahahaha
----------------
writeln :會換行的輸出
input(a)='ha','ha','ha','ha'
for run:=1 to 4 do
        writeln(a);

output=
ha
ha
ha
ha
----------------
須注意的是,readln在空格失誤或是多出的狀況,會出現問題的
請參見liou大的 d392 读取练习——强大的加法!

ex:
input=   123     5               1    3  71               1                       <end of file
如果用read的話.....

var sum,temp:longint;
begin
        while not eoln do begin
                read(temp);
                sum:=sum+temp;
        end;
        readln;
        writeln(sum);
end.
在read(temp);的時候,會因為input最後是空白,判定未"尚未eoln" 所以就會在那癡癡的等著下一個數據
當然......這時候就會毫不留情的送你一個TLE啦~

上一篇:a001 哈囉

春藥哪裡買 2020-01-12 04:12:54

很讚的分享~~


http://www.yyj.tw/