Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
#1

Задача о салфетке - C++

11.02.2014, 14:48. Просмотров 290. Ответов 2
Метки нет (Все метки)

Нам задаётся число 4^k. Оно обозначает кол-во квадратиков, на которые мы разбили салфетку. 4^1(4) - 2x2, 4^2(16) - 4x4, 4^3(64) - 8x8 и тд... По очередно сворачиваем салфетку по типу - правую половину под левую, потом получившуюся салфетку нижнюю половину под верхнюю. В итогу у нас получается 1х1х4^k. Это гарантируется. Потом мы последовательно нумеруем от самого верхнего слоя салфетки до нижнего, и получаем такой массивчик чисел. Вывести на экран этот массив при заданном числе 4^k.
Вот пример разложенного массива 4x4.
1 - 8 - 7 - 2
16 - 9-10-15
13-12- 11-14
4 - 5 - 6 - 3

Добавлено через 6 минут
Идеи 3: 1. Создать
C++
1
vector<vector<vector<int>>> g;
размера 1x1x4^k, заполнить его и как-то развернуть. Но я не знаю как к нему обращаться и как его задавать.
2. Создать просто
C++
1
int g [n][n][n];
, где n - число 4^k, но я не знаю, как заставить массив создаться, используя не константу, а переменную.
3. Углядеть какую-нибудь закономерность. Однако если до 4^2 ее ещё можно углядеть, то дальше уже туговато.
P.S. Чтобы было понятней, лучше самому взять листочек и разлиновать его, потом свернуть. В свернутом состоянии пронумеровать и развернуть. Советую сразу делать 8x8, так как до этого очевидно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2014, 14:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача о салфетке (C++):

Задача: В некотором государстве ввели компьютерный паспорт гражданина.(задача) - Pascal
Доброго времени суток,форумчане. Хотелось бы попросить помощи в решении одной задачи от умных голов. Задача: В некотором...

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника - PascalABC.NET
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он уплатил по 31 талеру, а за каждого быка по...

Задача на k-тую цифру последовательности, задача на схему Горнера. - Pascal
Ну, собственно опять прошу помощи... Задача 1: Определить k-тую цифру последовательности 1234567891011121314…, в которой выписаны подряд...

Первая смешанная задача для волнового уравнения на отрезке (задача о колебаниях ограниченной струны) методом Фурье - Дифференциальные уравнения
Решить первую смешанную задачу для волнового уравнения на отрезке (задача о колебаниях ограниченной струны) методом Фурье ...

Задача о размещении весов по ящикам (задача о рюкзаках) - Delphi
Есть упорядоченный по невозрастанию набор весов предметов w1..wn, которые необходимо распределить по ящикам способным выдержать вес V,...

Задача на файл и задача на создание очереди - Pascal
1 Дан символьный файл, содержащий, по крайней мере, один символ пробела. Удалить из файла все символы, предшествующие пробелу 2 ...

2
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
13.02.2014, 12:58  [ТС] #2
Труба?
0
ValeryS
Модератор
6679 / 5088 / 475
Регистрация: 14.02.2011
Сообщений: 17,081
13.02.2014, 13:21 #3
тут по моему лучше список list
сложили один раз
4 элемента 1 2 3 4
потом еще раз
запихали еще 4 элемента
5 6 между 3 4
и 7 8 между 1 2
ну это так мысли вслух, я не уловил закономерности оцифровки плоскостей, судил по табличке

Добавлено через 5 минут
Цитата Сообщение от Domonion Посмотреть сообщение
но я не знаю, как заставить массив создаться, используя не константу, а переменную.
динамическое выделение new
т.е
создал массив
заполнил
создал еще один массив заполнил, старый удалил
примерная схемка
C++
1
2
3
4
5
6
7
8
9
10
11
int arr*;
arr=new int[x];
//заполнили массив
.......................
int * arrTmp=new int[x1];
// заполнили новый массив
....................
// удалили старый
delete [] arr;
// указатель на новый массив
arr=arrTmp;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2014, 13:21
Привет! Вот еще темы с ответами:

Задача Дам или задача Восьми - Алгоритмы
помогите найти ошибку в алгоритме. не находит ответ подозреваю ошибку в k, i, j package com.company; import java.util.Arrays;...

Задача линейного программирования, транспортная задача - Методы оптимизации
Всем привет. сижу на экзамене, помогите пожалуйста решить,сроно!!! заранее спасибо.

задача Коши и краевая задача - Matlab
Помогите кто чем может))

Задача работы с массивом и задача работы с формой - C#
Помогите пожалуйста. Никак не могу разобраться с решением 2х задач: 1. Напишите приложение, которое в заголовке формы выводит ее...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru