hubert
41 уровень

Говнокод #16

Статья из группы Архив info.javarush
участников
double a = 47, b = 94; for (;; a += .5, b -= .5) { if (a == b) { System.out.println(a); break; } }
Комментарии (9)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
L2CCCP
Уровень 9
9 июня 2015, 07:18

		double a = 20, b = 94;
		do
		{
			a += .5;
			b -= .5;
		} while(a != b);
		
    System.out.println(a);



Но цикл не совсем подходит для такой задачи, можно решить это быстрее и правильней.


		double a = 20.5, b = 94.;
		final double min = Math.min(a, b);
		final double max = Math.max(a, b);
		final double diff = (max - min) / 2;
		a += diff;
		System.out.println(a);

profeg
Уровень 18
16 января 2015, 02:27
Может так?

double a = 47.0,b = 94.0;
for (;; a += .5,b -= .5) {
   if ((a-b) == 0) {
   System.out.print(a);
   return;
   }
}

или так

for (; (a-b) != 0; a += .5,b -= .5) { }
System.out.print(a);

только непонятно зачем =))
billybonce
Уровень 29
7 мая 2014, 17:59
Ну тогда воплощая комменты выше


double a = (47+94)/2d;
double b = a;
System.out.println(a);
Izhak
Уровень 22
7 мая 2014, 18:28
Ну тогда уж, если не используем константы, то так
double a, b;
a = (47d + 94) / 2;
b = a;
System.out.println (a);


Или просто
System.out.println ((47d + 94) / 2);

:^)
Izhak
Уровень 22
7 мая 2014, 15:09
System.out.println ((a+b)/2);
SergeyKandalintsev
Уровень 32
7 мая 2014, 15:41
какой результат выведет приведенный код? какой результат выведет твой код?
Spitfire
Уровень 33
7 мая 2014, 15:56
Вывод вроде одинаковый. Единственно отличие — переменные останутся неизменными.
Izhak
Уровень 22
7 мая 2014, 16:41
Предлагаю запустить
SergeyKandalintsev
Уровень 32
7 мая 2014, 14:21
Хз что имеется ввиду? Поиск среднего? Даже как-то рука не поднимается здесь что-то «улучшать» :)