1 汉诺塔运行结果:
引用
input number: 5
Disk 1 From A To C
Disk 2 From A TO B
Disk 1 From C To B
Disk 3 From A TO C
Disk 1 From B To A
Disk 2 From B TO C
Disk 1 From A To C
Disk 4 From A TO B
Disk 1 From C To B
Disk 2 From C TO A
Disk 1 From B To A
Disk 3 From C TO B
Disk 1 From A To C
Disk 2 From A TO B
Disk 1 From C To B
Disk 5 From A TO C
Disk 1 From B To A
Disk 2 From B TO C
Disk 1 From A To C
Disk 3 From B TO A
Disk 1 From C To B
Disk 2 From C TO A
Disk 1 From B To A
Disk 4 From B TO C
Disk 1 From A To C
Disk 2 From A TO B
Disk 1 From C To B
Disk 3 From A TO C
Disk 1 From B To A
Disk 2 From B TO C
Disk 1 From A To C
import java.io.*;
public class Hanoi {
public static void main(String args[]) throws IOException {
int n;
BufferedReader buf;
buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("input number: ");
n = Integer.parseInt(buf.readLine());
Hanoi hanoi = new Hanoi();
hanoi.move(n, 'A', 'B', 'C');
}
public void move(int n, char a, char b, char c) {
if (n == 1)
System.out.println("Disk " + n + " From " + a + " To " + c);
else {
move(n - 1, a, c, b);
System.out.println("Disk " + n + " From " + a + " TO " + c);
move(n - 1, b, a, c);
}
}
}
2 Array Dominator
import java.util.Hashtable;
import junit.framework.TestCase;
public class Dominator extends TestCase {
public static int dominator(int[] a) {
int result = -1;
int length = a.length;
Hashtable<Integer, Integer> countTable = new Hashtable<Integer, Integer>();
for (int i = 0; i < length; i++) {
if (countTable.containsKey(a[i])) {
countTable.put(a[i], countTable.get(a[i]) + 1);
if (countTable.get(a[i]) >= length / 2) {
return i;
}
} else {
countTable.put(a[i], 0);
}
}
return result;
}
public void testDominator() {
int[] array = { 1, 2, 3, 3, 3, 3, 3 };
assertEquals(dominator(array), 5);
}
}
public class HeavyNumberTest {
static int count = 0;
public static void main(String a[]) {
// should be 5
System.out.println(heavy(8675, 8689));
}
static int heavy(int a, int b) {
int range = 0;
if (a == 0 || b == 0)
return 0;
if (a > b)
range = a - b;
else
range = b - a;
for (int j = 0; j <= range; j++) {
double avg = 0.0;
int sum = 0;
int n = 0;
int currentNumber = a;
while (currentNumber > 0) {
sum += currentNumber % 10;
currentNumber = currentNumber / 10;
n++;
}
avg = ((double) sum) / ((double) n);
if (avg > 7)
count++;
System.out.println(" " + avg + " \t " + count);
a++;
}
return count;
}
}
分享到:
相关推荐
1汉诺塔问题: 包括了三种实现方式。a传统递归;b非递归,用Stack;c非递归,直接根据通项式规律求出 2普里姆算法: 其思想是加点法,程序中用一个StringBuffer来记录已经被访问了点 3克鲁斯克尔算法: 其思想是加边...
---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码---
汉诺塔问题是一种经典的递归算法问题,源自印度的一个古老传说。在数学和计算机科学领域,它是用来教学和理解递归思想的一个经典实例。在MATLAB中实现汉诺塔问题,我们可以利用其强大的编程功能来解决这个问题。 ...
### 汉诺塔问题算法及其实现 #### 概述 汉诺塔问题是一个经典的递归算法案例,它不仅在计算机科学领域有着广泛的应用,同时也被用来教授递归思想的基础知识。这个问题最早由法国数学家Édouard Lucas于1883年提出,...
任意输入N个盘,在三个柱子上实现汉诺塔问题的非递归求解,用栈进行
汉诺塔问题是一种经典的递归算法问题,源自印度的一个古老传说。它涉及到将一堆盘子从一根柱子移动到另一根柱子,遵循以下规则: 1. 任何时候,盘子必须保持在柱子上。 2. 一次只能移动一个盘子。 3. 盘子不能被比...
算法分析设计中三柱汉诺塔算法的拓展,四柱汉诺塔的设计算法代码
### 多柱汉诺塔问题研究 #### 引言与背景 汉诺塔问题作为一种经典的数学游戏,由法国数学家爱德华·卢卡斯在1883年提出。传统汉诺塔问题包含三个柱子及多个不同大小的圆盘,玩家的目标是将所有圆盘按照一定规则从...
汉诺塔是一个经典的递归问题,它源自一个古老的印度传说。在这个问题中,有三个柱子和一堆不同大小的圆盘,目标是将所有圆盘从一个柱子移动到另一个柱子,遵循以下规则: 1. 一次只能移动一个圆盘。 2. 不允许将大...
汉诺塔(Hanoi Tower)是一款经典的逻辑游戏,源自19世纪由法国数学家艾德蒙·洛卡特(Edouard Lucas)提出的数学问题。它通常由三根圆柱和一堆不同大小的圆盘组成,玩家的目标是将所有圆盘从一根柱子移动到另一根...
利用状态空间法对汉诺塔定义状态,用广度优先的方法解决汉诺塔问题,人工智能.(属于学校学习课程所做,非商业内容)
在压缩包中的源代码文件,如`hanoi.cpp`可能包含了基础的汉诺塔问题的递归解决方案,而`hanoiParity.cpp`可能实现了奇偶汉诺塔问题的算法,`hanoiNear.cpp`则可能针对邻近移动汉诺塔问题进行了实现,`hanoiCircle....
汉诺塔问题是一个经典的计算机科学问题,源自一个古老的印度传说。该问题涉及到三根柱子和一堆盘子,目标是将所有盘子从第一根柱子(A柱)移动到第三根柱子(C柱),但每次只能移动一个盘子,并且任何时候大盘子都不...
通过上述分析可以看出,双色汉诺塔是在传统汉诺塔的基础上加入了颜色限制,使得问题变得更加复杂。在实现过程中,我们利用了递归的思想来解决这一问题,通过分而治之的方法逐步完成所有圆盘的移动。需要注意的是,在...
本篇文章将详细介绍一个用Java语言编写的汉诺塔问题的图形界面演示程序。汉诺塔问题是一种经典的递归算法实例,常用于教授递归思想。在这个程序中,我们将通过Swing库构建一个图形用户界面(GUI),以直观地展示汉诺...
在深入探讨汉诺塔问题的解决方案之前,首先需要明确栈和队列这两种数据结构的基本概念和特点。栈是一种后进先出的数据结构,意味着最后进入的元素会首先被取出,其操作主要是压入(push)和弹出(pop)。这一特性在...
汉诺塔问题C/C++;解决汉诺塔问题的算法;递归
人工智能导论实验3——汉诺塔&八皇后问题_人工智能汉诺塔-CSDN博客.html
汉诺塔(Hanoi Tower)是一个经典的递归问题,它涉及到将一堆盘子从一个柱子移动到另一个柱子,遵循以下三个基本规则: 1. 任何时候都不能将大盘子放在小盘子上。 2. 每次只能移动一个盘子。 3. 必须将所有盘子从...