Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2015, 15:19   #1
sayrok
Новичок
Джуниор
 
Регистрация: 23.12.2015
Сообщений: 1
По умолчанию Перевод с Си на Java

Есть задача.
Олимпиадная задача
Квадрат разбит на 4k одинаковых квадратных клеток.
Квадрат перегибается поочередно относительно вертикальной (правая половина накладывается на левую)
и горизонтальной (нижняя половина подкладывается под верхнюю) оси симметрии до тех пор,
пока все клетки не будут расположены одна под другой.
Занумеровать клетки исходного квадрата таким образом,
чтобы после выполнения перегибов номера клеток в полученном столбике
шли по возрастанию сверху вниз от 1 до 4k . Нумерация вручную не пройдет!

Интерфейс программы:
входные данные:
k – показатель степени (от единицы до десяти),
выходные данные:
вид квадрата с номерами клеток.
Пример
Вход
k=1
Выход – квадрат с четырьмя клетками:
4 3
1 2

Есть её код на Си, прошу перевести его на java. Я на Си никогда не прогал, треть кода не понимаю.
Код:
#include <stdio.h>
#include <math.h>
 
int last[1024][1024];
 
bend (int size) {
  int i, j;
  int width= last[0][0] / (size*size*4);
  for (i= 0; i < size; i++) for (j= 0; j < size; j++) {
    int fl= (i+j) % 2 * 2 - 1; // 1 or -1
    last[2*size-i-1][j]= last[i][j] + fl*(width * 4 - 1);
    last[i][2*size-j-1]= last[i][j] + fl*(width * 2 -1);
    last[2*size-i-1][2*size-j-1]= last[i][j] + fl*(width * 2 );
  }
}
 
main() {
  int k, i, j, size;
  scanf ("%d", &k);
  last[0][0]= powl (4, k);
  for (size= 1; size < powl (2,k); size*= 2) bend (size);
  for (i=0; i < size; i++) {
    for (j= 0; j < size; j++) printf ("%d\t", last[i][j]);
    printf ("\n");
  }
 
}
sayrok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналог MoveNext на Java. Перевод программы с C# на Java SheShe Помощь студентам 0 19.12.2012 19:45
Перевод с C# на Java ИльназВ Общие вопросы по Java, Java SE, Kotlin 0 05.12.2012 21:51
Перевод из С# на Java STERVA Помощь студентам 0 22.12.2011 18:28
Перевод на Java Ksuxa Общие вопросы по Java, Java SE, Kotlin 2 06.09.2010 01:01
перевод с Java на C Lys Помощь студентам 2 10.12.2009 01:50