Вниз  Разбор интересных задач
- 11.07.2011 / 09:28
XakepPRO
  Модератор форума

XakepPRO 
Сейчас: Offline
Заполнение двумерного массива по спирали
 
Не знаю почему, но этот алгоритм больше всего меня притягивает и заставляет ржать :lol:
 
И так, сделаем попроще,
Входные данные:
N - размер матрицы
Выходные данные:
Матрица заполненная натуральным рядом от 1 до NxN:
  1. 1   2   3  4
  2. 12 13 14 5
  3. 11 16 15 6
  4. 10 9   8  7


Изменено XakepPRO (11.07 / 09:28) (всего 1 раз)
- 11.07.2011 / 09:38
dejqitz
  Пользователь

dejqitz 
Сейчас: Offline
XakepPRO, да этоже змейка! У нас такое проходят все новобранцы!

Вот еще примеры:

1:
  1. 1 2  3  4
  2. 8  7   6  5
  3. 9  10 11 12
  4. 16 15  14 13

2:
  1. 1  2  6  7
  2. 3  5  8  13
  3. 4   9  12 14
  4. 10 11  15  16


Изменено dejqitz (11.07 / 09:39) (всего 1 раз)
- 11.07.2011 / 12:05
XakepPRO
  Модератор форума

XakepPRO 
Сейчас: Offline
Гг, последнего я еще не видал :gy:
- 26.07.2011 / 16:52
LPzhelud
  Пользователь

LPzhelud 
Сейчас: Offline
Хотел написать сюда задачку, но пока загружал тему, придумал как решить. Спасибо вам ^_^
__________________
 Эль Презеденте
- 13.09.2011 / 16:59
kiriman
  Пользователь

kiriman 
Сейчас: Offline
Узнать, находится ли x между a и b?
Одно из возможных решений:
  1. public class Program {
  2. public void main(String[] args) {
  3. int x, a, b;
  4. a = 5;
  5. x = 7;
  6. b = 4;
  7. if (a > b) {
  8. int p = a;
  9. a = b;
  10. b = p;
  11. }
  12. if (x > a && x < b) {
  13. System.out.println("Да");
  14. } else {
  15. System.out.println("Нет");
  16. }
  17. }
  18. }
Как можно было решить по другому, красивей?
За решение даю 300 монет.
- 13.09.2011 / 17:02
XakepPRO
  Модератор форума

XakepPRO 
Сейчас: Offline
  1. public class Program {
  2. public void main(String[] args) {
  3. int x, a, b;
  4. a = 5;
  5. x = 7;
  6. b = 4;
  7. if ((x > a) && (x < b)) {
  8. System.out.println("Да");
  9. } else {
  10. System.out.println("Нет");
  11. }
  12. }
  13. }
  :hack: :lol:

Изменено XakepPRO (13.09 / 17:03) (всего 1 раз)
- 13.09.2011 / 18:17
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
LPzhelud (26.07.2011/16:52)Хотел написать сюда задачку, но пока загружал тему, придумал как решить. Спасибо вам ^_^оффтоп :nus: :-D
***
kiriman,
  1. int x = 12;
  2. int a = 10;
  3. int b = 15;
  4. System.out.print( a < x && b > x ? "Пойдет ;)" : "Не катит :zloj:");
ИМХО, проще некуда :gg:

Изменено mrEDitor (13.09 / 18:17) (всего 1 раз)
- 13.09.2011 / 18:26
Salat-Cx65
  Пользователь

Salat-Cx65 
Сейчас: Offline
Мой вариант,итераций больше,зато красивее:) Используем бинарный поиск в упорядоченном массиве.


***



Допускаем что ряд чисел среди которых ищем заранее отсортироват int[] array={1,2,3...х..n-1,n};
Тогда

if(BinarySearch(array,6,array.length-6,25)) System.out.print("Ключ находиться между границ");
else System.out.print("Ключ находиться за границами");
Ну и сам поиск:

public static boolean BinarySearch(int[] array,int start,int end,int key)
{
if(start>end) return false;
if(end>array.length) return false;

int Median=(start+end)/2;

int temp=array[Median];


if(key<temp){
end=Median-1;
  return BinarySearch(array,start,end,key);
}
if(key==temp) return true;

if(key>temp)
{
start=Median+1;
return BinarySearch(array,start,end,key;


}
return false;

}

Изменено Salat-Cx65 (13.09 / 18:28) (всего 1 раз)
- 13.09.2011 / 18:36
kiriman
  Пользователь

kiriman 
Сейчас: Offline
Салат выиграл :gg:
  1. public class Program {
  2. public void main(String[] args) {
  3. int x, a, b;
  4. a = 5;
  5. x = 7;
  6. b = 4;
  7. System.out.println((a-x)*(b-x) < 0?"Да":"Нет");
  8. }


Изменено kiriman (13.09 / 18:38) (всего 1 раз)
- 13.09.2011 / 18:46
RGT
  Пользователь

RGT 
Сейчас: Offline
  1. #include "stdafx.h"
  2. int _tmain(int argc, _TCHAR* argv[])
  3. {
  4.     int a = 0;
  5.     int b = 10;
  6.     int x = 13;
  7.     if (a<x && x<b)
  8.     {
  9.     printf("a<x<b");
  10.     }
  11.     else {printf("error");}
  12.     getchar();
  13. }

__________________
 don't tread on me
Наверх  Всего сообщений: 751
Фильтровать сообщения
Поиск по теме
Файлы топика (34)