Mạng máy tính và internet

Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Lục Hạ Vy

Người ta thường dùng các vạch để viết các số như sau: Số 0 dùng 6 vạch, số 1 dùng 2 vạch....

Bài tập: Cho số nguyên dương N(N<=109)

a) Hãy tính số vạch cần dùng để viết số N?

b) Tìm chữ số lớn nhất trong số N

c) Kiểm tra N là số có các chữ số tăng dần, giảm dần hay không tăng, không giảm

Dữ liệu vào: Từ tệp DT.inp chứa 1 số nguyên dương N gồm 1 dòng duy nhất

Dữ liệu ra: Ghi vào tệp DT.out gồm 3 dòng:

+D1: Số vạch cần tìm để viết số N điện tử

+D2: Chữ số lớn nhất trong N

+D3: Ghi T nếu N là số có các chữ số tăng dần, ghi L nếu N là số có các chữ số giảm dần, ghi 0 nếu N là số không tăng, không giảm

Nguyễn Lê Phước Thịnh
12 tháng 12 2019 lúc 22:22

uses crt;
const fi='dt.inp';
fo='dt.out';
var n,i,d,x,t,ln,kt:integer;
st:string;
a:array[1..100]of integer;
f1,f2:text;
begin
clrscr;
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
{-------------------------cau-a-----------------------}
str(n,st);
d:=length(st);
for i:=1 to d do
val(st[i],a[i],x);
t:=0;
for i:=1 to d do
begin
if a[i]=0 then t:=t+6;
if a[i]=1 then t:=t+2;
if a[i]=2 then t:=t+5;
if a[i]=3 then t:=t+5;
if a[i]=4 then t:=t+4;
if a[i]=5 then t:=t+5;
if a[i]=6 then t:=t+6;
if a[i]=7 then t:=t+3;
if a[i]=8 then t:=t+7;
if a[i]=9 then t:=t+6;
end;
writeln(f2,t);
{-----------------------cau-b---------------------------}
ln:=a[1];
for i:=1 to d do
if ln<a[i] then ln:=a[i];
writeln(f2,ln);
{--------------------cau-c-------------------------------}
kt:=0;
for i:=1 to d-1 do
if a[i]>a[i+1] then kt:=1;
if kt=0 then writeln(f2,'T')
else begin
kt:=0;
for i:=1 to d-1 do
if a[i]<a[i+1] then kt:=1;
if kt=0 then writeln(f2,'L')
else writeln(f2,'0');
end;
close(f1);
close(f2);
readln;
end.

Khách vãng lai đã xóa