thể trùng lặp:
How does this work? Weird Towers of Hanoi SolutionTháp lặp của Hà Nội này hoạt động như thế nào? C
Trong khi lướt Google, tôi tìm thấy giải pháp thú vị này đến Tháp Hà Nội mà thậm chí không sử dụng ngăn xếp như cấu trúc dữ liệu.
Ai đó có thể giải thích ngắn gọn về tôi, nó thực sự đang làm gì?
Giải pháp này có thực sự chấp nhận được không?
Mã
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, x;
printf("How many disks?\n");
scanf("%d", &n);
printf("\n");
for (x=1; x < (1 << n); x++)
printf("move from tower %i to tower %i.\n",
(x&x-1)%3, ((x|x-1)+1)%3);
return 0;
}
Cập nhật: các mã hóa cứng số 3 làm ở đây là gì?
Đang sử dụng thanh chuẩn 3. –
Báo cáo có đúng trình tự di chuyển không? Nếu vậy, nó hoạt động, và không có lý do tại sao nó không được chấp nhận. Tuy nhiên, bạn cần phải hiểu nó trước khi cung cấp nó như là một giải pháp cho bài tập ở nhà của bạn, hoặc bạn sẽ gặp rắc rối nếu bạn được kêu gọi để giải thích nó, vì bạn có thể rất tốt vì nó rất khác so với bình thường. –
Nó không phải là bài tập về nhà của tôi. Tôi chỉ vô tình tìm thấy thuật toán này và nghĩ rằng nó sẽ hoạt động như thế nào. – TCM