Uses crt;
Var n:integer;
S:longint;
Begin
CLRSCR;
Writeln('Nhap so KW dien tieu thu: '); Readln(n); if (n>100) then S:=50*1000+50*1200+(n-100)*1500
else if (n>50) then S:=50*1000+(n-50)*1200
else S:=n*1000;
Writeln('So tien ho gia dinh can tra: ',s);
Readln;
END.
Giải thích:
- Biến N nhập vào là số KW điện tiêu thụ, và S là số tiền cần trả
- Trước tiên xin nhắc nhở một tí là n là Integer thì S phải là Longint ( vì nếu không số tiền của bạn chỉ có 32767đ là hết đát, mà có ai xài 100kW mà trả có 32767đ thôi đâu. Chung quy lại là để không bị vượt mức dữ liệu ), hoặc bạn có thể thay thế cả hai thành kiểu Real ( số thực ).
- Nên xét từ lớn đến bé.
- - Nếu số KW hơn 100 ( tức 101 trở đi ) thì tính S:=50*1000+50*1200+(n-100)*1500
-->> Tức là 50 KW đầu tính với giá 1000, 50 KW tiếp theo tính với giá 1200, và số KW còn lại tính với giá 1500.
- - Tương tự, nếu số KW hơn 50 ( không cần bé hơn 100 nữa vì nếu nó hơn 100 thì đã vào trường hợp trên rồi ) thì S:=50*1000+(n-50)*1200
-->> Tức là 50 KW đầu tính giá 1000, số KW còn lại tính với giá 1200
- - Trường hợp cuối là <=50, thì trường hợp này không cần suy nghĩ nhiều, có bao nhiêu tính bấy nhiêu, tức S:=n*1000
- Và cuối cùng xuất S là tổng vừa tìm được.