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 6 trên tổng số 6 kết quả

Đề tài: [BT][Đệ quy] Giả thuyết của Collatz

  1. #1
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mặc định [BT][Đệ quy] Giả thuyết của Collatz

    Collatz đưa ra giả thuyết rằng: với một số nguyên dương X, nếu X chẵn thì ta gán X:= X div 2; nếu X lẻ thì ta gán X:= X*3+1. Sau một số hữu hạn bước, ta sẽ có X=1;
    Ví dụ với X=10;
    X=10--> 5--> 16--> 8--> 4--> 2--> 1
    Cứ cho giả thuyết Collatz là đúng đắn, vấn đề đặt ra là: Cho trước số 1 cùng với hai phép toán *2 và div 3, hãy sử dụng một cách hợp lý hai phép toán đó để biến đổi số 1 thành một giá trị nguyên dương X cho trước.
    Ví dụ: X=10 ta có 1 * 2 * 2 *2 *2 div 3 * 2=10
    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
    09 2007
    Bài viết
    17

    Làm lại qui trình trên theo cách của Collatz . Sau khi kết quả bằng 1 thì làm ngược lại.

  3. #3
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Yeah, cách làm của anh đúng rồi, nhưng anh có thể trình bày rõ hơn về cách cài đặt không

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    17

    Ý HL là sao nhỉ ? Viết code hả ?

  5. #5
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Anh không nhất thiết phải viết code, chỉ cần nêu hướng cài đặt của chương trình thôi.
    Yêu cầu của bài toán là
    - nhập vào n và xuất ra một dãy phép toán để cho ra n từ số 1.
    ví dụ: nhập vào 10
    cho ra: 1 * 2 * 2 * 2 * 2 div 3 * 2

  6. #6
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Mặc định [BT][Đệ quy] Giả thuyết của Collatz

    Code:
    #include <iostream>
    using namespace std;
    void Collatz(int n){
         if (n == 1) cout <<'1';
         else 
              if (n%2 == 0){
                 Collatz(n / 2);
                 cout <<"*2";
              }
              else{
                   Collatz(n * 3 + 1);
                   cout <<"/3";
              }
    }
    int main(){
        cout <<"Nhap n: "; int n; cin >>n;
        Collatz(n);
        cout <<"=" <<n <<endl;
        system("pause");
        return 0;
    }
    Thế này được ko hailoc
    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ý.
    Đã được chỉnh sửa lần cuối bởi huynguyen : 28-10-2007 lúc 04:05 AM.

Các đề tài tương tự

  1. Các giải thuật sắp xếp - Lý thuyết và cài đặt trên C
    Gửi bởi PoPoPoPo trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 30
    Bài viết cuối: 28-05-2020, 10:23 PM
  2. Các giải thuật tìm kiếm - Lý thuyết và cài đặt trên C
    Gửi bởi PoPoPoPo trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 5
    Bài viết cuối: 24-02-2015, 05:21 PM
  3. Lý thuyết C++ | Giải thuật đồ thị cài đặt bằng C++
    Gửi bởi rox_rook trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 31
    Bài viết cuối: 30-01-2015, 10:41 PM
  4. minh co 1 số câu lý thuyết không giải được
    Gửi bởi nghiapro2589 trong diễn đàn Nhập môn lập trình Java
    Trả lời: 0
    Bài viết cuối: 10-10-2013, 01:09 AM
  5. Lý thuyết đồ thị | Giải thuật DFS (Depth First Search)
    Gửi bởi vie_kainznz trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 1
    Bài viết cuối: 14-01-2013, 10:48 PM

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