Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 36
1

Напишите программу, получающую последовательность перемещений дисков

16.09.2013, 10:30. Показов 904. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача 1. (О Ханойских башнях, обсуждалась на лекции)
Даны три столбика, на один из которых надето n дисков так, что внизу находится самый большой, вверху — самый маленький, и ни один диск не лежит на меньшем его (вероятно, все уже вспомнили, как выглядит детская пирамидка). Нужно переложить все диски на другой столбик, используя третий как промежуточный и соблюдая при этом два правила. Во-первых, за один шаг можно переносить только один диск. Во-вторых, больший диск нельзя класть на меньший.
Напишите программу, получающую последовательность перемещений дисков.
Решение. Договоримся, что столбики мы будем называть А, В, С (латинскими буквами) и будем переносить диски с А на В, используя как вспомогательный столбик С. Также договоримся, что будем нумеровать диски с 1 до n «сверху вниз».
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package hanoytowers;
import java.util.Scanner;
class HanoyTowers{
char spire1;
char spire2;
char spire3;
int n;
HanoyTowers(){
spire1 = 'A';
spire2 = 'B';
spire3 = 'C';
System.out.print("Введите количество дисков n = ");
Scanner con = new Scanner(System.in);
n = con.nextInt();
1
System.out.println("\nОписание, как переложить " + n +
" дисков со столбика А на В через промежуточный С");
System.out.println("(Нумерация дисков - сверху вниз)");
} // constructor HanoyTowers
void moveDisks(int m, char source, char destination, char temporary){
if (m == 1){
System.out.printf("%s %d %s %c %s %c%n" , "диск", m, "со столбика",
source, "на столбик", destination);
}
else{
moveDisks(m-1, source, temporary, destination);
System.out.printf("%s %d %s %c %s %c%n" , "диск", m, "со столбика",
source, "на столбик", destination);
moveDisks(m-1, temporary, destination, source);
}
} // moveDisks
void moveDisksWrapper(){
moveDisks(n, spire1, spire2, spire3);
} // moveDisksWrapper
} // class HanoyTowers
public class ProblemHT {
public static void main(String[] args) {
HanoyTowers ht = new HanoyTowers();
ht.moveDisksWrapper();
} // main
} // class ProblemHT

1.Дополните вывод последовательности перемещений в задаче 1 выводом количества дисков на каждом столбике после каждого шага.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2013, 10:30
Ответы с готовыми решениями:

Напишите функцию, получающую целое число
14. Напишите функцию, получающую целое число N (> 0). Если оно является степенью числа 3, то...

Напишите функцию, получающую два целых числа
13. Напишите функцию, получающую два целых числа A и B (A < B). Функция выводит в порядке...

Напишите функцию получающую два целых числа
Напишите функцию получающую два целых числа А и В (А < В) Функция выводит в порядке возрастания все...

Напишите функцию получающую два целых числа
Напишите функцию получающую два целых числа А и В (А < В) Функция выводит в порядке возрастания все...

2
25 / 22 / 15
Регистрация: 26.11.2011
Сообщений: 92
16.09.2013, 10:56 2
а в чем собственно вопрос или проблема?
0
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 36
23.09.2013, 09:55  [ТС] 3
не могу сделать вот это задание
1.Дополните вывод последовательности перемещений в задаче 1 выводом количества дисков на каждом столбике после каждого шага.
0
23.09.2013, 09:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2013, 09:55
Помогаю со студенческими работами здесь

Напишите функцию, получающую целое значение, которая возвращает число с обращенным порядком цифр
1. Напишите функцию, получающую целое значение, которая возвращает число с обращен-ным порядком...

Напишите программу которая суммирует последовательность целых чисел.
Напишите программу которая суммирует последовательноть целых чисел. Первое считываемое число...

Напишите программу, которая строит последовательность из N случайных чисел
Напишите программу, которая строит последовательность из N случайных чисел на отрезке от 1 до 1 и...

Напишите программу, которая выводит на экран заданную последовательность
Напишите программу, которая выводит на экран последовательность из N чисел: 1, -2, 4, -8,...и т.д....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru