Cho số nguyên dương X có k chữ số, đổi tùy ý vị trí các chữ số của X ta thu được số Y. Yêu cầu: Hãy tìm số Y nhỏ nhất. Dữ liệu vào: Cho trong file văn

Cho số nguyên dương X có k chữ số, đổi tùy ý vị trí các chữ số của X ta thu được số Y.
Yêu cầu: Hãy tìm số Y nhỏ nhất.
Dữ liệu vào: Cho trong file văn bản DOISO.INP có cấu trúc như sau:
– Dòng 1: Ghi số nguyên dương k. (0 { "@context": "https://schema.org", "@type": "QAPage", "mainEntity": { "@type": "Question", "name": " Cho số nguyên dương X có k chữ số, đổi tùy ý vị trí các chữ số của X ta thu được số Y. Yêu cầu: Hãy tìm số Y nhỏ nhất. Dữ liệu vào: Cho trong file văn", "text": "Cho số nguyên dương X có k chữ số, đổi tùy ý vị trí các chữ số của X ta thu được số Y. Yêu cầu: Hãy tìm số Y nhỏ nhất. Dữ liệu vào: Cho trong file văn bản DOISO.INP có cấu trúc như sau: - Dòng 1: Ghi số nguyên dương k. (0

0 bình luận về “Cho số nguyên dương X có k chữ số, đổi tùy ý vị trí các chữ số của X ta thu được số Y. Yêu cầu: Hãy tìm số Y nhỏ nhất. Dữ liệu vào: Cho trong file văn”

  1. Mình viết code C++ nhé:

    #include <algorithm>

    #include <fstream>
    #include <string>
    using namespace std;
    int main()
    {

     //Chúng ta mở các file:
     ifstream fin(“DOISO.INP”);
     ofstream fout(“DOISO.OUT”);

     //Vì số X quá lớn nên chúng ta phải dùng dạng xâu:
     string X;
     int k;

     //Nhập vào dữ liệu:
     fin >> k;
     fin >> X;

     //Dùng hàm sort() có sẵn trong thư viện, để đưa các chữ số nhỏ hơn đứng trước các chữ số lớn hơn:
     sort(X.begin(), X.end());

     //Loại bỏ các số 0 thừa ở đầu:
     while ((X.length() > 1) && (X[0] == ‘0’)) X.erase(0, 1);

     //Trả về kết quả:
     fout << X;

     //Kết thúc:

     return 0;
    }

    //Chúng ta không cần đóng file hay làm gì khác vì chương trình sẽ tự động dọn dẹp khi kết thúc.

    Bình luận

Viết một bình luận