Chương trình đơn giản

Lê Trung Hiếu

Viết CT cho phép nhập 1 số nguyên dương N (N<10^6)

a) Cho biết có thể sắp xếp lại các chữ số của N để được số chia hết cho 5 không (IN ra màn hình CO hoặc KHONG).

b) Thực hiện xóa 1 chữ số bên phải của số N để được số chia hết cho 9, in ra các số đó. In ra KHONG nếu không thể xóa để được số chia hết cho 9.

c) Thực hiện sắp xếp lại các chữ số của số N để được số có giá trị lớn nhất

Nguyễn Lê Phước Thịnh
17 tháng 10 2020 lúc 9:01

uses crt;
var n,i,dem,d,kt,x,d1,j,tam,y:integer;
st,st1,st2:string;
b:array[1..1000]of integer;
{-------------------------chuong-trinh-con------------------------}
function ktra(a:longint):boolean;
begin
if a mod 3=0 then ktra:=true
else ktra:=false;
end;
{-------------------------chuong-trinh-chinh----------------------}
begin
clrscr;
write('Nhap n='); readln(n);
str(n,st);
str(n,st2);
d:=length(st);
kt:=0;
for i:=1 to d do
if (st[i]='0') or (st[i]='5') then kt:=1;
if kt=0 then writeln('KHONG')
else writeln('CO');
dem:=0;
if ktra(n)=true then writeln(n);
if ktra(n)=false then
begin
repeat
n:=n div 10;
inc(dem);
until (ktra(n)=true) or (dem=length(st));
if (ktra(n)=true) and (dem<>length(st)) then
begin
x:=n;
str(n,st1);
writeln(st[length(st1)+1]);
end;
if dem=length(st) then writeln('KHONG');
end;
d1:=length(st2);
for i:=1 to d1 do
begin
val(st2[i],b[i],y);
end;
for i:=1 to d1-1 do
for j:=i+1 to d1 do
if b[i]<b[j] then
begin
tam:=b[i];
b[i]:=b[j];
b[j]:=tam;
end;
for i:=1 to d1 do
write(b[i]);
readln;
end.

Bình luận (0)

Các câu hỏi tương tự
Hà Phương
Xem chi tiết
Lê Thị Bảo Trâm
Xem chi tiết
Nguyễn Thị Tươi
Xem chi tiết
Hoàng lĩnh
Xem chi tiết
Đinh Hoàng Nhất Quyên
Xem chi tiết
Trần Vi Nam Khánh
Xem chi tiết
Nam Phạm An
Xem chi tiết
Thái Bảo
Xem chi tiết
Nam Phạm An
Xem chi tiết