CSES - Removing Digits | Loại bỏ chữ số

Xem PDF

Điểm: 1300 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bạn được cho một số nguyên \(n\). Ở mỗi bước, bạn có thể trừ \(n\) đi một lượng bằng một trong các chữ số của nó.

Cần bao nhiêu bước để làm cho \(n\) bằng \(0\)?

Input

  • Gồm một dòng duy nhất chứa số nguyên \(n\).

Output

  • In ra một số nguyên duy nhất là số bước tối thiểu cần dùng.

Constraints

  • \(1 \leq n \leq 10 ^ 6\)

Example

Sample input

27

Sample output

5

Note

Một giải pháp tối ưu là \(27 \to 20 \to 18 \to 10 \to 9 \to 0\).


Bình luận


  • -3
    SBD20_Caominhduc    9:14 p.m. 2 Tháng 8, 2024
    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    int n,dem;
    string st;
    string to_str(int n)
    {
        string st="";
        while(n>0)
        {
            st=st+char(n%10+48);
            n/=10;
        }
        reverse(st.begin(),st.end());
        return st;
    }
    int to_num(string st)
    {
        int n=0;
        int k=st.size();
        for(int i=0;i<k;i++)
        {
            n=n*10+(st[i]-48);
        }
        return n;
    }
    int main()
    {
        ios_base::sync_with_stdio(0);cin.tie(NULL);
        cin >> st;
        while(st.size()>0&&st[0]!='0')
        {
            char kq='0';
            n=st.size();
            for(int i=0;i<n;i++)
            {
                kq=max(kq,st[i]);
            }
            st=to_str(to_num(st)-(kq-48));
            dem++;
        }
        cout << dem;
        return 0;
    }
    

    Spoiler

    Code C++ Không dùng stoi và to_string

    • 12 bình luận nữa