Người ta truyền rằng một số gọi là số hoàn hảo nếu nó không chứa quá 1 số khác “0”.Ví dụ 100;2000 là một số hoàn hảo,510;1020 không phải là số hoàn hảo. Yêu cầu: Cho một số nguyên dương N. Bạn hãy lập chương trình cho biết phải cộng thêm vào số nguyên dương N tối thiểu một khoảng bao nhiêu nữa để có kết quả là một số hoàn hảo (1 ≤ N ≤ 10^9)(1≤N≤10 9 ). Mô tả đầu vào Số nguyên dương N Ràng buộc • Subtask 1 (30%số điểm): Có N ≤ 1000. • Subtask 2 (40% số điểm): Có N ≤ 10000. • Subtask 3 (30% số điểm): Không có ràng buộc gì thêm. Lưu ý: Kết quả bài toán luôn luôn là số dương. Mô tả đầu ra Kết quả bài toán sau khi thực hiện yêu cầu đề bài Test case mẫu Đầu vào mẫu 1 92 Đầu ra mẫu 1 8

1 câu trả lời

#include <iostream>
#include <cmath>
using namespace std;
typedef long long ll;

int main() {
 ll n;
 cin >> n;
 bool flag = 1;
 if (n == 0)
  return cout << 0, 0;
 if (n < 10)
  return cout << 10 - n, 0;
 int scs = 1;
 ll m = n;
 while (m > 9) {
  if (m % 10 != 0)
   flag = 0;
  m /= 10;
  scs++;
 }
 if (flag) 
  return cout << 0, 0;
 ll mul = pow(10,scs - 1);
 cout << (n / mul + 1)*mul - n;
 return 0;
}

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