Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Long ca ca

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

Phùng Công Anh
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.

 


Các câu hỏi tương tự
Long ca ca
Xem chi tiết
Le Thanh Thanh
Xem chi tiết
Bo Bong
Xem chi tiết
26-Do Thanh Trung
Xem chi tiết
30-nguyen duc minh
Xem chi tiết
Long ca ca
Xem chi tiết
Trần Văn Việt Hùng
Xem chi tiết
Nguyễn Công Bằng
Xem chi tiết
huynh chinh
Xem chi tiết