Показать сообщение отдельно
Старый 25.11.2011, 10:30   #1
Kavil
На доске почёта
Аватар для Kavil
OFFLINE
Регистрация: 11.11.2011
Возраст: 33
Сообщений: 0
Благодарностей:
59 всего
Мнения: + 751
Репутация: 178
Отправить сообщение для Kavil с помощью ICQ Отправить сообщение для Kavil с помощью Yahoo

Задачка по pascal


ООО «Симптотика» собирается наладить выпуск обучающих игр для детей младшего дошкольного возраста. Одной из придуманных игр был набор кубиков, из которых можно было собирать различные фигуры. Кубики упаковывались в коробку размером N * N * 1 кубиков.
Однако многочисленные маркетинговые исследования показали, что детям неинтересно просто собирать различные фигурки. Гораздо интереснее складывать некоторый набор кубиков на дно коробки в столбики, а после этого переворачивать коробку на 90 градусов по часовой стрелке и смотреть, как именно меняется их расположение. Будем для простоты считать, что коробка поворачивается мгновенно, после чего все кубики падают на дно.
Разумеется, многим детям становится интересно, как будет выглядеть расположение кубиков после K поворотов в том же направлении. Требуется написать программу, которая вычисляет итоговое положение кубиков в коробке после K поворотов.
Формат входных данных
Сначала с клавиатуры вводятся целые числа N и K через пробел (1<N<10, 0<K<10). После этого во второй строке вводятся N неотрицательных чисел, не превышающих N. i-ое число обозначает количество кубиков в столбце под номером i.
Формат выходных данных
На экран необходимо вывести N чисел через пробел, каждое из которых обозначает количество кубиков в соответствующем столбце в полученном после K поворотов расположении кубиков.

Пока вот что получается.
Хочу сделать через массивы
Но там можно сделать вроде по другому
Через какое то число поворотов расположение кубиков такое же все время получается.

Код:
program kubiki;
uses crt;
var p,v,t,c,pia,hes,i,n,k,s:integer;
m1:array[1..5] of integer;
m2:array[1..5] of integer;
m3:array[1..5] of integer;
m4:array[1..5] of integer;
m5:array[1..5] of integer;
g1:array[1..5] of integer;
g2:array[1..5] of integer;
g3:array[1..5] of integer;
g4:array[1..5] of integer;
g5:array[1..5] of integer;
Begin
clrscr;
writeln('VVEDITE KOL-VO KUBIKOV');
readln(n);
writeln('VVEDITE CHISLO POVOROTOV');
readln(k);
writeln('Skoko v 1-om');
readln(p);
writeln('Skoko vo 2-om:');
readln(v);
writeln('Skoko v 3-em:');
readln(t);
writeln('Skoko v 4-em:');
readln(c);
writeln('Skoko v 5-em:');
readln(pia);
s:=p+v+t+c+pia+hes;
if s<>n then
writeln('Vi vveli nevernoe kol-vo kubikov') else
for i:=1 to p do
 begin
 m1[i]:=1;
 end;
 for i:=1 to v do
 begin
 m2[i]:=1;
 end;
 for i:=1 to t do
 begin
 m3[i]:=1;
 end;
 for i:=1 to c do
 begin
 m4[i]:=1;
 end;
 for i:=1 to pia do
 begin
 m5[i]:=1;
 end;
 for i:=1 to n do
 if m1[i]=1 then
 g1[i]:=1 else  g1[i]:=0;
 if m2[i]=1 then
 g1[i+1]:=1 else g1[i+1]:=0;
 if m3[i]=1 then
 g1[i+2]:=1 else g1[i+2]:=0;
 if m4[i]=1 then
 g1[i+3]:=1 else g1[i+3]:=0;
 if m5[i]=1 then
 g1[i+4]:=1 else g1[i+4]:=0;
 readln;
 End.
Кто может помогите, можно на delphi думаю пойму

Последний раз редактировалось Kavil; 25.11.2011 в 10:39.
 
Ответить с цитированием