解决河内难题之塔的Java递归程序
我需要Java程序来使用以下方法解决河内塔的所有磁盘中间杆并计算复杂度,这不会使用中间杆所有磁盘
class project
{
static void towerOfHanoi(int n, char from_rod, char to_rod, char aux_rod)
{
if (n == 1)
{
System.out.println("Move disk 1 from rod " + from_rod + " to rod " + to_rod);
return;
}
towerOfHanoi(n-1, from_rod, aux_rod, to_rod);
System.out.println("Move disk " + n + " from rod " + from_rod + " to rod " + to_rod);
towerOfHanoi(n-1, aux_rod, to_rod, from_rod);
}
驱动程序方法
public static void main(String args[])
{
int n = 4; // Number of disks
towerOfHanoi(n, 'A', 'C', 'B'); // A, B and C are names of rods
}
}
如果正确(最佳)解决了河内塔问题,则移动数将为O(2^N)
。