Задача Задача [0] - Премиум на один месяц

Mangol

Путник
Пользователь
Победитель в номинации 2015
Сообщения
796
Розыгрыши
0
Репутация
965
Реакции
59
Баллы
0
Платформа : Java

Напишите программу, которая выводит на экран числа от 1 до 100.
При этом вместо чисел, кратных трем, программа должна выводить слово «mmo-», кратных пяти — слово «develop.ru» *.

*При всем этом можно передавать лишь 1 переменную final String, на вывод числа, слово. (Передача в метод печати ограничено 1 запросом).

P.S. Для zcxv , Deazer, L2CCCP запрещено юзать if, else.

Естественно есть подвох.;)

Готовые решения ложить под хайд по имени пользователя Mangol
 
Последнее редактирование:

Качество кода учитывается! Лучший из вариантов получит Премиум на один месяц.
 
Не совсем понял: "При всем этом можно передавать лишь 1 переменную final String, на вывод числа, слово. (Передача в метод печати ограничено 1 запросом)."


Код:
public static void version1() {
     final int num1 = 3;
     final int num2 = 5;
     final String string = "mmo-develop.ru";
     for(int i = 1; i <= 100; i++) {
       while(i % num1 == 0) { //or for(; i % num1 == 0;)
         System.out.println(string.substring(0, num1));
         break;
       }
       while(i % num2 == 0) {
         System.out.println(string.substring(num1 + 1));
         break;
       }
       System.out.println(i);
     }
   }

   public static void version2() {
     final int num1 = 3;
     final int num2 = 5;
     final String string = "mmo-develop.ru";
     for(int i = 1; i <= 100; i++) {
       while(i % num1 == 0) {
         char[] chars = string.toCharArray();
         for(int j = 0; j < num1; j++) {
           System.out.print(chars[j]);
         }
         System.out.println();
         break;
       }
       while(i % num2 == 0) {
         char[] chars = string.toCharArray();
         for(int j = num2 - 1; j < chars.length; j++) {
           System.out.print(chars[j]);
         }
         System.out.println();
         break;
       }
       System.out.println(i);
     }
   }

   public static void version3() {
     final int num1 = 3;
     final int num2 = 5;
     final String string = "mmo-develop.ru";
     for(int i = 1; i <= 100; i++) {
       switch (i % num1) {
       case 0:
         System.out.printf("%s\r\n", string.substring(0, num1));
         break;
       default:
         break;
       }
       switch (i % num2) {
       case 0:
         System.out.printf("%s\r\n", string.substring(num2 - 1));
         break;
       default:
         break;
       }
       System.out.println(i);
     }
   }
 
Последнее редактирование модератором:
PHP:
public static void main(String[] args)
{
    StringBuilder s = new StringBuilder();
    for (int i = 1; i <= 100; i++)
    {
        s.append(i % 3 == 0 ? "mmo-" : i % 5 == 0 ? "develop.ru" : i);
    }
    System.out.print(s.toString());
}
 
Последнее редактирование модератором:
Код:
public class Test
{
    public static void main(String[] args)
    {
        for(int i = 0; i <= 100; i++)
        {
            final String s = i % 3 == 0 ? "mmo-" : i % 5 == 0 ? "develop.ru" : String.valueOf(i);
            System.out.println(s);
        }
    }
}
 
Последнее редактирование модератором:
Частично, но все же нет. Как выше описано есть злосный подвох.
 
Последнее редактирование:
Хм, тогда ТЗ неверное, все что описано соблюдено, и кратность, и передача строго 1 параметра final String и отсутствие if, else))
 
Последнее редактирование модератором:
Код:
package com.l2cccp;

/**
* @author L2CCCP
* @site http://l2cccp.com/
*/
public class MangolOmgCrazyWork
{
    public static void main(String... args)
    {
        for(int i = 1; i <= 100; i++)
        {
            final boolean three = i % 3 == 0, five = i % 5 == 0;
            final String msg = (three && five ? "mmo-develop.ru" : three ? "mmo-" : five ? "develop.ru" : i).toString();
            show(msg);
        }
    }

    private final static void show(final Object str)
    {
        System.out.println(str);
    }
}
 
Последнее редактирование модератором:
  • Мне нравится
Реакции: kick и Mangol

    kick

    Баллов: 22
    Без комментариев
Почти верно. Но есть подвох. Думай)
 
Последнее редактирование:
Ну тогда так, если уж вообще строго 1 переменная final String
Код:
public class Test
{
    public static void main(String[] args)
    {
        final String s = "%1%";
        for(int i = 0; i <= 100; i++)
        {
            System.out.println(s.replace("%1%", i % 3 == 0 ? "mmo-" : i % 5 == 0 ? "develop.ru" : String.valueOf(i)));
        }
    }
}
 
Последнее редактирование модератором:
Нет, думай! Близко, очень близко! Ты не о том сейчас думаешь) Думать нужно не о финалах уже.
 
Последнее редактирование:
Дай хоть подсказку что не так))
 
Последнее редактирование модератором:
Не могу не как вставить хайд :(
 
Готовые решения ложить под хайд по имени пользователя Mangol !
 
Pastebin
 
Последнее редактирование модератором:
  • Мне нравится
Реакции: kick

    kick

    Баллов: 22
    Без комментариев
Теперь точно все)))
Код:
public class Test
{
    public static void main(String[] args)
    {
        for(int i = 0; i <= 100; i++)
        {
            final String s = (i % 3 == 0 && i % 5 == 0) ? "mmo-develop.ru" : i % 3 == 0 ? "mmo-" : i % 5 == 0 ? "develop.ru" : String.valueOf(i);
            System.out.println(s);
        }
    }
}
 
Последнее редактирование модератором:
  • Мне нравится
Реакции: kick и Mangol

    kick

    Баллов: 22
    Без комментариев
:Twinkle: Пока 2 лидера.
 
Близко но нет, есть подвох.
 
Последнее редактирование:

Похожие темы

Назад
Сверху Снизу