Decode – Giải mã

by | Oct 30, 2023 | Hướng dẫn giải | 0 comments

Đề bài:

Hướng dẫn giải:

Với giới hạn giá trị của Y thì ta có thể nhận xét rằng:

Y = X + Z với Z = tổng các chữ số của X mà X có giá trị trong khoảng $10^9$ nên Z có giá trị tối đa là 9*9 = 81 ==> có thể duyệt qua tất cả các giá trị trong khoảng từ [Y , Y – 100] để tìm giá trị X thỏa điều kiện.

#include<bits/stdc++.h>

using namespace std;

int tongchuso(long long n){
    long long digit;
    long long m=0;
    while(n>0){
        digit=n%10;
        m+=digit;
        n/=10;
    }
    return m;
}
int main(){
    long long n;
    cin>>n;
    long long x = n - 1; 
    while(x + tongchuso(x)!=n){
        x--;
    }
    cout<<x;
    return 0;
}