LC

Cho số nguyên dương N (N ≤ 104). Gọi M là tổng của N với các chữ số của nó. Khi đó ta gọi N là nguồn của M.
Ví dụ : N = 245, khi đó 245 + 2 + 4 + 5 = 256. Như vậy 245 là nguồn của 256. Có những số không có nguồn và có những số có nhiều nguồn. Ví dụ, số 216 có 2 nguồn là 198 và 207.
4). Hãy tìm nguồn nhỏ nhất của nó. Nếu M không có nguồn thì ghi ra 0.
Input : gồm một số M duy nhất
Output : gồm một số duy nhất là nguồn của M hoặc số 0 nếu M không có nguồn.

InputOutput
216198

Làm pascal nha mn giúp mình với

PA
29 tháng 6 2023 lúc 22:41

program tim_nguon_nho_nhat;

const
  MAX_NUMBER = 10000;

var
  M, nguon_nho_nhat: Integer;

function TinhTongChuSo(num: Integer): Integer;
var
  sumOfDigits: Integer;
begin
  sumOfDigits := 0;
  while num > 0 do
  begin
    sumOfDigits := sumOfDigits + (num mod 10);
    num := num div 10;
  end;
  TinhTongChuSo := sumOfDigits;
end;

function TimNguonNhoNhat(M: Integer): Integer;
var
  N, M_temp, M_digits, nguon_nho_nhat: Integer;
begin
  M_temp := M;
  nguon_nho_nhat := MAX_NUMBER;
  for N := 1 to M_temp do
  begin
    M_digits := TinhTongChuSo(N) + N;
    if M_digits = M_temp then
    begin
      if N < nguon_nho_nhat then
        nguon_nho_nhat := N;
    end;
  end;
  if nguon_nho_nhat = MAX_NUMBER then
    TimNguonNhoNhat := 0
  else
    TimNguonNhoNhat := nguon_nho_nhat;
end;

begin
  Readln(M);
  nguon_nho_nhat := TimNguonNhoNhat(M);
  if nguon_nho_nhat = 0 then
    Writeln('0')
  else
    Writeln('Nguon nho nhat cua ', M, ' la ', nguon_nho_nhat);
end.

 

Bình luận (0)

Các câu hỏi tương tự
LC
Xem chi tiết
LT
Xem chi tiết
BB
Xem chi tiết
2T
Xem chi tiết
3M
Xem chi tiết
LC
Xem chi tiết
TH
Xem chi tiết
NB
Xem chi tiết
HC
Xem chi tiết