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


  • 0
    hoangphucnguyen    9:21 p.m. 28 Tháng 10, 2024

    Cày trâu là full ac


    • 0
      ducmatgoclyhoa    10:44 a.m. 11 Tháng 10, 2024

      Câu này giống tham lam hơn là DP =))))))

      1 phản hồi

      • 0
        TH06_2024    8:37 a.m. 23 Tháng 8, 2024 đã chỉnh sửa

        ezzz gg 1300
        hầu hết là có 1 quy tắc thui


        • -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


          • -1
            tk22NguyenHuuPhuHung    4:29 p.m. 5 Tháng 7, 2024

            Bài này dễ mà điểm cao quá à 🐧🐧

            1 phản hồi

            • 0
              ceaturs    2:39 p.m. 22 Tháng 5, 2024

              ý tường vấn là tìm chữ số lớn nhất trong n rồi lấy n trừ đi chữ số đó là được.

              int main(){
              string s;
              cin>>s;
              int cnt=1;
              while(s.size()>1 &&s[0]!='0'){
              char i=0;
              for(auto x:s){
              i=max(i,x);
              }
              s=to_string(stoi(s)-(i-'0'));
              cnt++;

              }

              cout<<cnt<<endl;
              return 0;
              }


              • -1
                thuan30122005    12:44 a.m. 1 Tháng 1, 2024

                bài này dùng đệ quy là ra ấy mà
                easy


                • 11
                  tester123    10:59 p.m. 2 Tháng 11, 2023

                  Ad ơi vẫn còn mấy người dùng if else test mong ad xử lý ạ

                  1 phản hồi

                  • 5
                    letangphuquy    7:10 p.m. 28 Tháng 8, 2023

                    Cảm ơn bạn superman1236969 đã góp ý bản dịch!


                    • 3
                      Shinoz    1:31 a.m. 29 Tháng 7, 2023

                      bài này bình thường mà sao thấy nhiều người iftest thế

                      1 phản hồi
                      • 3 bình luận nữa