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

Mangol

Участник
Пользователь
#1
Платформа : Java

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

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

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

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

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

zcxv

Antihero
Проверенный
#3
Не совсем понял: "При всем этом можно передавать лишь 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);
     }
   }
 
Последнее редактирование модератором:

Test

Свой человек
Местный
#4
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());
}
 
Последнее редактирование модератором:

Tyrel

Lineage Services
Местный
#5
Код:
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);
        }
    }
}
 
Последнее редактирование модератором:

Mangol

Участник
Пользователь
#6
Частично, но все же нет. Как выше описано есть злосный подвох.
 
Последнее редактирование:

Tyrel

Lineage Services
Местный
#7
Хм, тогда ТЗ неверное, все что описано соблюдено, и кратность, и передача строго 1 параметра final String и отсутствие if, else))
 
Последнее редактирование модератором:

L2CCCP

Работник недели xD
Партнер
#8
Код:
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);
    }
}
 
Последнее редактирование модератором:

Mangol

Участник
Пользователь
#9
Почти верно. Но есть подвох. Думай)
 
Последнее редактирование:

Tyrel

Lineage Services
Местный
#10
Ну тогда так, если уж вообще строго 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

Участник
Пользователь
#11
Нет, думай! Близко, очень близко! Ты не о том сейчас думаешь) Думать нужно не о финалах уже.
 
Последнее редактирование:

Tyrel

Lineage Services
Местный
#12
Дай хоть подсказку что не так))
 
Последнее редактирование модератором:

Tyrel

Lineage Services
Местный
#17
Теперь точно все)))
Код:
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);
        }
    }
}
 
Последнее редактирование модератором:

Mangol

Участник
Пользователь
#20
Близко но нет, есть подвох.
 
Последнее редактирование:
Сверху Снизу