Sum Digit Một số gọi là hoàn hảo nếu tổng các chữ số của nó bằng 10. Bây giờ bạn hãy tìm số hoàn hảo lớn thứ k. Mô tả đầu vào Một dòng duy nhất chứa số k . Ràng buộc 1 ≤ k ≤ 10000. Mô tả đầu ra In ra kết quả bài toán. Test case mẫu Đầu vào mẫu 1 1 Đầu ra mẫu 1 19 Đầu vào mẫu 2 2 Đầu ra mẫu 2 28 - Độ phức tạp càng nhỏ càng tốt :)) - C++, C, Pascal, Python, Perl

1 câu trả lời

// Nhanh hơn duyệt từng số nhưng không nhanh :))

Var i,j,dem,n,m,x:Int64;
 Begin
  Readln(n);
  i:=19;dem:=1;
  While dem<n do
   Begin
    i:=i+9;
    x:=i; m:=0;
    While x<>0 do
     Begin
      m:=m+x mod 10;
      x:=x div 10;
     End;
    If m = 10 then dem:=dem+1;
   End;
  Write(i);
 Readln;
End.

Câu hỏi trong lớp Xem thêm