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ý.
Trang 5 trên tổng số 5 Đầu tiênĐầu tiên ... 345
Từ 41 tới 44 trên tổng số 44 kết quả

Đề tài: Bài toán Tháp Hà Nội | Tower of Hanoi

  1. #41
    Ngày gia nhập
    11 2015
    Bài viết
    6

    Mặc định Bài toán Tháp Hà Nội | Tower of Hanoi

    http://laptrinh.ntu.edu.vn/Problem/Details/136
    đầy đủ luôn nhé bạn ahihii

    - - - Nội dung đã được cập nhật ngày 22-03-2016 lúc 10:39 PM - - -

    Trích dẫn Nguyên bản được gửi bởi theanhkkt Xem bài viết
    Có ai biết độ phức tạp thuật toán này là cỡ nhiêu không?
    trong môn phân tích độ phức tạp của thuật toán - thì nó là cỡ O nào?
    mà theo mình biết thì bài toán này là do 1 người ấn độ nghĩ ra mà, tên là ha noi. đến việt nam sao đổi thành hà nội
    http://laptrinh.ntu.edu.vn/Problem/Details/136
    Link full đáp án luôn nhé, ahihii, Puskin,...
    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. #42
    Ngày gia nhập
    12 2017
    Bài viết
    1

    Mặc định Code game thap ha noi c++

    #include<stdio.h>
    #include<conio.h>
    #include<Windows.h>
    #include<iostream>
    #include<time.h>
    #include<string.h>

    void gotoxy(int x, int y)
    {
    static HANDLE h = NULL;
    if (!h)
    h = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD c = { x, y };
    SetConsoleCursorPosition(h, c);
    }
    void NangLen(int A[], int n,int x)
    {

    gotoxy((2 * x - 2)*n + 2 * x, n + 3 - A[0]);
    for (int j = 0; j < 2*n+1; j++)
    printf(" ");

    gotoxy((2 * x - 2)*n + 2 * x,1);
    for (int j = A[A[0]]; j < 2 * n + 1; j += 2)
    printf(" ");
    for (int j = 0; j < A[A[0]]; j++)
    printf("*");

    for (int i = 2; i <= n + 2; i++)
    {
    gotoxy((2 * x - 1)*n + 2 * x, i);
    printf("+");
    }

    }
    void VeThap(int A[],int n,int x)
    {
    for (int i = 1; i <= A[0]; i++)
    {
    gotoxy((2*x-2)*n+2*x, n + 2 - i+1);
    for (int j = A[i]; j < 2*n+1; j += 2)
    printf(" ");
    for (int j = 0; j < A[i]; j++)
    printf("*");
    }
    for (int i = 2; i <= n+2; i++)
    {
    gotoxy((2 * x - 1)*n + 2 * x, i);
    printf("+");
    }
    }
    void Init(int A[], int B[], int C[], int n)
    {
    A[0] = n;
    B[0] = C[0] = 0;
    for (int i = 1; i <= n; i++)
    A[i] = 2 * (n-i+1) + 1;
    }

    void main()
    {
    char tt;
    do
    {
    char a, b;
    int A[20], B[20] = { 50 }, C[20] = { 50 }, n;
    gotoxy(3, 0);
    printf("Game THAP HA NOI(Create by Nguyen Huu Phuoc)\n");
    do
    {
    printf("Nhap do kho ban muon choi:");
    scanf("%d", &n);
    system("CLS");
    } while (n<1 || n>18);
    Init(A, B, C, n);
    do
    {
    system("CLS");
    gotoxy(3, 0);
    printf("Game THAP HA NOI(Create by Nguyen Huu Phuoc)");
    VeThap(A, n, 1);
    VeThap(B, n, 2);
    VeThap(C, n, 3);

    do
    {
    a = getch();
    } while (strchr("123", a) == NULL);
    switch (a)
    {
    case '1':
    NangLen(A, n, 1);
    do
    {
    b = getch();
    } while (strchr("123", b) == NULL);
    switch (b)
    {
    case '1': break;
    case '2':
    if (A[A[0]] > B[B[0]] && B[0] != 0)
    break;
    B[B[0] + 1] = A[A[0]];
    A[0]--;
    B[0]++;
    break;
    case '3':
    if (A[A[0]] > C[C[0]] && 0 != C[0])
    break;
    C[C[0] + 1] = A[A[0]];
    A[0]--;
    C[0]++;
    break;
    }

    break;
    case '2':
    NangLen(B, n, 2);

    do
    {
    b = getch();
    } while (strchr("123", b) == NULL);
    switch (b)
    {
    case '2': break;
    case '1':
    if (B[B[0]] > A[A[0]] && A[0] != 0)
    break;
    A[A[0] + 1] = B[B[0]];
    A[0]++;
    B[0]--;
    break;
    case '3':
    if (B[B[0]] > C[C[0]] && C[0] != 0)
    break;
    C[C[0] + 1] = B[B[0]];
    B[0]--;
    C[0]++;
    break;
    }

    break;
    case '3':
    NangLen(C, n, 3);
    do
    {
    b = getch();
    } while (strchr("123", b) == NULL);
    switch (b)
    {
    case '3': break;
    case '1':
    if (C[C[0]] > A[A[0]] && A[0] != 0)
    break;
    A[A[0] + 1] = C[C[0]];
    A[0]++;
    C[0]--;
    break;
    case '2':
    if (C[C[0]] > B[B[0]] && B[0] != 0)
    break;
    B[B[0] + 1] = C[C[0]];
    C[0]--;
    B[0]++;
    break;
    }

    break;
    }
    } while (C[0] != n);

    system("CLS");
    gotoxy(3, 0);
    printf("Game THAP HA NOI(Create by Nguyen Huu Phuoc)");
    VeThap(A, n, 1);
    VeThap(B, n, 2);
    VeThap(C, n, 3);

    gotoxy(2, n + 3);
    printf("You Win");
    fflush(stdin);
    printf("\n+Tiep tuc (Y/N)?");
    do
    {
    tt = getch();
    } while (strchr("yYnN", tt) == NULL);
    }while (strchr("yY", tt) != NULL);
    }

  3. #43
    Ngày gia nhập
    08 2017
    Bài viết
    3,549

    Bạn xài TBD nào vậy, có thử chưa ?

    Tôi copy biên dịch nó báo lỗi


    Biết thì nói, không biết cứ dựa cột mà nghe.

  4. #44
    Ngày gia nhập
    03 2020
    Bài viết
    1

    Bài toán kinh điển này một hôm có đứa bạn nó hỏi mình nên mình cũng muốn thử lại.
    Code thì đã code rồi nên giờ mình muốn chia sẻ code, không biết các mod có quan ngại về việc đào mộ thread không, nếu có thì mong thứ lỗi ạ.

    Tower of Hanoi Đệ quy
    Code:
    void tower_of_Hanoi(int n, int Source, int Spare, int Dest) {
    	// Source la coc From, Dest laf coc To. 
    	// Spare la coc trung gian.
    	// Tai mot level de quy chung ta se chuyen tu coc From -> coc To.
    	if (n == 1) {
    		printf("Move disk #%d from peg#%d to peg#%d\n", n, Source, Dest);
    	} else {
    		// Chuyen (n-1)disks tu Source sang Spare
    		//
    		// From (bay gio la Source) -> To (bay gio la Spare) | Dest la coc trung gian
    		tower_of_Hanoi(n-1, Source, Dest, Spare);
    
    		printf("Move disk#%d from peg#%d to peg#%d\n", n, Source, Dest);
    
    		// Chuyen (n-1)disks tu coc Spare sang coc Dest
    		//
    		// From (bay gio la Spare) -> To (bay gio la Dest) | Source la coc trung gian
    		tower_of_Hanoi(n-1, Spare, Source, Dest);
    	}
    }
    Tower of Hanoi Khử đệ quy
    Code:
    class HanoiState {
    	public:
    		int n;
    		int top_disk;
    		int Source;
    		int Spare;
    		int Dest;
    	public:
    		HanoiState(){}
    		HanoiState(int _n, int top, int _s, int _sp, int _d) : 
    			n(_n), top_disk(top), Source(_s), Spare(_sp), Dest(_d) 
    		{}
    };
    
    void tower_of_Hanoi_iterate(int n, int Source, int Spare, int Dest) {
    	// Tan dung stack trong STL cua C++
    	stack<HanoiState> hanoi;
    	hanoi.push( HanoiState(n, 1, Source, Spare, Dest) );
    	//
    	while ( !hanoi.empty() ) {
    		int n       = hanoi.top().n;
    		int top     = hanoi.top().top_disk;
    		int Source  = hanoi.top().Source;
    		int Spare   = hanoi.top().Spare;
    		int Dest    = hanoi.top().Dest;
    		hanoi.pop();
    		// --
    		if (n == 1) {
    			printf("Move disk#%d from peg#%d to peg#%d\n", top, Source, Dest);
    		} else {
    			// Chuyen (n-1)disks tu Source -> Spare
    			// From (bay gio la Source) -> To (bay gio la Spare) | Dest la coc trung gian
    			// <step 1> hanoi.push( HanoiState(n-1, 1, Source, Dest, Spare) );	
    			
    			// Move (1)disk from Source to Dest
    			// Chuyen (1)disk (disk#n) duoi cung tu Source -> Dest
    			// <step 2> hanoi.push( HanoiState(1, n, Source, Spare, Dest) );
    
    			// Chuyen (n-1)disks tu Spare toi Dest
    			// From (bay gio la Spare) -> To (bay gio la Dest) | Source la coc trung gian
    			// <step 3> hanoi.push( HanoiState(n-1, 1, Spare, Source, Dest) );
    
    			// Vi cach hoat dong cua Stack, thu tu push vao phai duoc dao nguoc
    			hanoi.push( HanoiState(n-1, 1, Spare, Source, Dest) );
    			hanoi.push( HanoiState(1, n, Source, Spare, Dest) );
    			hanoi.push( HanoiState(n-1, 1, Source, Dest, Spare) );	
    		}
    	}
    }
    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ý.

Trang 5 trên tổng số 5 Đầu tiênĐầu tiên ... 345

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

  1. Cho thuê Căn hộ 3pn,1000 USD, đủ đồ, Chung cư Keangnam HaNoi landmark Tower
    Gửi bởi kyucmotthoi999 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 22-11-2013, 10:45 AM
  2. Bán suất ngoại giao chung cư Indochina Plaza Hanoi Tower ( IPH )
    Gửi bởi hienviboss trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 23-07-2012, 03:52 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