Tính tổng các số lẻ bình phương

Chương trình tính tổng các số lẻ bình phương với các yêu cầu sau:

  • Chương trình tính tổng sau: S=1+3^2+5^2+…+(2n-1)^2
  • Dữ liệu đầu vào: Đọc từ file TONG.INP
  • Kết quả là số tự nhiên N trong phạm vi: 0<=N<=10000
  • Kết quả ghi vào file: TONG.OUT

Ví dụ:

TONG.INP TONG.OUT
3 35
5 165

Code Pascal

{======================================================
 CHUONG TRINH TINH TONG SAU: S=1+3^2+5^2+...+(2n-1)^2
 DU LIEU VAO: DOC TU FILE TONG1.INP
 GHI KET QUA LA SO TU NHIEN N VOI 0<N<=100000
 KET QUA GHI VAO FILE TONG1.OUT
 VI DU:
 ---------------------------
 |  TONG.INP  |  TONG.OUT  |
 ---------------------------
 |      3     |      35    |
 ---------------------------
 |      5     |     165    |
 ---------------------------
=======================================================}


program tinhtong1;
uses crt;
var N,i:Integer;
var FileInput, FileOutput:String;
var S, Stemp, Max:LongInt; {S: Luu tong, Stemp: Luu gia tri cua so dang tinh, Max: Luu gioi han toi da cua so tong}
var FileReader:text;

begin
      clrscr;
      FileInput:='TONG1.INP'; 
      FileOutput:='TONG1.OUT';
      Max:=100000; {Dat gioi han gia tri toi da}

      {DOC GIA TRI N TU FILE}
      assign(FileReader,FileInput);
      reset(FileReader);
      readln(FileReader,N);
      close(FileReader);

      {THUC HIEN TINH TONG THEO CONG THUC CHO TRUOC}
      for  i:=1 to N do
      begin
          Stemp:=S+(2*i-1)*(2*i-1);
          if(Stemp<=Max) then {Neu khong vuot gioi han toi da thi luu ket qua moi vao bien S tu bien Stemp}
          begin
                S:=Stemp;
          end;
      end;

      {GHI KET QUA RA FILE}
      assign(FileReader,FileOutput);
      rewrite(FileReader);
      write(FileReader,S);
      close(FileReader);

      writeln('Da ghi ket qua ra file ',FileOutput);
	  writeln('BAM PHIM BAT KY DE KET THUC!');
      readln();
end.

Hy vọng hữu ích với bạn!

Nosomovo

Chia sẻ lên
WEB5k - Thiết kế website giá rẻ chuẩn SEO