Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Sinh ra các chuỗi số từ 1 chuỗi số cho trước

  1. #1
    Ngày gia nhập
    07 2009
    Bài viết
    1

    Mặc định Sinh ra các chuỗi số từ 1 chuỗi số cho trước

    Nhờ mọi người đóng góp giải thuật bài toán bên dưới giúp mình, có code minh họa càng tốt.
    Bài toán như sau:
    Với chuổi cho trước "?123?4??". Yêu cầu:
    1. Sinh ra tất cả các chuỗi số từ chuỗi đã cho với điều kiện "?" thay bằng 0 --> 9
    2. NHANH
    Thanks mn!
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    467

    Trích dẫn Nguyên bản được gửi bởi tudowar Xem bài viết
    Nhờ mọi người đóng góp giải thuật bài toán bên dưới giúp mình, có code minh họa càng tốt.
    Bài toán như sau:
    Với chuổi cho trước "?123?4??". Yêu cầu:
    1. Sinh ra tất cả các chuỗi số từ chuỗi đã cho với điều kiện "?" thay bằng 0 --> 9
    2. NHANH
    Thanks mn!
    Giúp bạn nửa bài, sinh các chuỗi số từ chuỗi bao gồm toàn "?", ví dụ "???","??????"
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. char chamHoi[30];
    5. void ganChamHoi(int j,int n)
    6. {
    7.     if(j>=n)
    8.     {
    9.         int i=0;
    10.         while(i<n)
    11.         {
    12.             cout<<chamHoi[i];
    13.             i++;
    14.         }
    15.         cout<<endl;
    16.     }
    17.     else
    18.     {
    19.         chamHoi[j]='0';
    20.         while(chamHoi[j]<='9')
    21.         {
    22.             ganChamHoi(j+1,n);
    23.             chamHoi[j]++;
    24.         }
    25.     }
    26. }
    27. int main()
    28. {
    29.     ganChamHoi(0,3);//xử lí chuỗi "???";
    30.     ganChamHoi(0,6);//xử lí chuỗi "??????";
    31.     getchar();
    32. }
    Bài này còn có cách không đệ qui nữa.

    - - - Nội dung đã được cập nhật ngày 14-08-2019 lúc 08:27 AM - - -

    Cách không đệ qui
    C++ Code:
    1. #include <iostream>
    2. #include <string>
    3. #include <cmath>
    4. using namespace std;
    5.  
    6. void ganChamHoi2(int n)
    7. {
    8.     long i=0;
    9.     long m=pow(10,n);
    10.     string str;
    11.     while(i<m)
    12.     {
    13.         str=to_string(i);
    14.         while(str.length()<n)
    15.         {
    16.             str="0"+str;
    17.         }
    18.         cout<<str<<endl;
    19.         i++;
    20.     }
    21. }
    22.  
    23. int main()
    24. {
    25. ganChamHoi2(3);// sinh từ chuổi "???"
    26. getchar();
    27. }
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn