Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Java] элементы последовательности 
:(
    Опции темы
turtles
Дата 21.9.2011, 06:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 17.2.2011

Репутация: нет
Всего: нет



Здравствуйте, подскажите какой из двух кодов более правильнее, или что можно переделать или дописать в коде!

1)
Программа должна, выводить на экран
первые 55 элементов последовательности
1 3 5 7 9 11 13 15 17 ….
Код

Первый код:

public class Test {
    public static void main(String args[]){
       int sum = 1;
        int count = 0;
         for(int i = sum; i <= 333; i += 2){
          sum = i;
           count++;
          if(sum == 111)break;
        System.out.println(count + " элемент - " + sum);
        }
      System.out.println("Первые " + (count-1) + " элементов");
    }
}


Код

Второй код:

public class Test {
    public static void main(String args []){
      int sum = 0;
       int count = 0;
        for (int i = sum; i <= 54; i++) {
           sum = 2 * i + 1;
            count++;
          System.out.println(count + " элемент - " + sum);
       }
     System.out.println("Первые " + count + " элементов");
   }
}


2)
Подскажите и поэтому коду что можно добавить или переделать!

Программа должна, выводить на экран
все неотрицательные элементы последовательности
90 85 80 75 70 65 60 ….

Код

public class Test {
    public static void main(String args[]){
       final int first = 90;
         final int second = -90;
          int count = 0;
           for(int i = first; i > second; i-=5){
            count++;
              if(i == 0)break;
               System.out.println(count + " элемент - " + i);
             }
          System.out.println("Все неотрицательные элементы 90 85 80 75 70 65 60 ….");
      }
}


3)
Подскажите и поэтому коду что можно добавить или переделать!

Программа должна, выводить на экран
первые 20 элементов последовательности
2 4 8 16 32 64 128 ….

Код


public class Test {
    public static void main(String args[]){
      final int a = 1;
        int sum;
        int count = 0;
        sum = (int) Math.pow(a,2);
       for(int i = 1; i <= 20; i++){
         sum*=2;
           count++;
         System.out.println(count + " элемент - " + sum);
       }
      System.out.println("Первые " + count + " элементов");
    }
}



P.S. Все компилировал и запускался код, спрашиваю совет что можно до делать или переделать как будет правильней!
PM MAIL   Вверх
Farmazon
Дата 21.9.2011, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Разработчик
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 7.7.2006

Репутация: нет
Всего: 5



1) в первом варианте ###код)

Ты это имел ввиду?... 

Код

public class Test {
    public static void main(String args[]){
         final int count = 55;
         for(int i = 1, val = 1; i <= count; i ++, val += 2){
                 System.out.println(i + " элемент - " + val);
        }
      System.out.println("Первые " + count + " элементов");
    }
}

нафиг усложнять?

И при работе с целыми числами этот код будет эфективнее(шустрее), всего 110 сложений против 55 умножений и 110 сложений.

На вещественных этот код может дать большую погрешность, тогда второй вариант может быть более уместен...

2)
Цитата

все неотрицательные элементы последовательности


Код

public class Test {
    public static void main(String args[]){
       final int first = 90;
         final int second = 0;          
           for(int i = first,  count = 1; i >= second; i-=5, count++){
               System.out.println(count + " элемент - " + i);
             }
          System.out.println("Все неотрицательные элементы 90 85 80 75 70 65 60 ….");
      }
}


3) нафига тебе Math.pow ? Нафига тебе ещё один счётчик цикла count? он с i совпадает
Код

public class Test {
    public static void main(String args[]){
        final int a = 1;        
        final int count = 20;
       for(int i = 1, val = a*2; i <= count; i++, val *= 2){
          System.out.println(i + " элемент - " + val);
       }
      System.out.println("Первые " + count + " элементов");
    }



Это сообщение отредактировал(а) Farmazon - 21.9.2011, 07:39


--------------------
Таково моё общее мнение.
PM MAIL WWW   Вверх
turtles
Дата 21.9.2011, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 17.2.2011

Репутация: нет
Всего: нет



Спасибо за очень хороший ответ "Farmazon"
PM MAIL   Вверх
turtles
Дата 21.9.2011, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 17.2.2011

Репутация: нет
Всего: нет



Подскажите еще по коду, правильно ли с циклом for!
Вывести на экран все члены последовательности 2an-1–1, где a1=2, которые меньше 10000.

Вот написал код с циклом for вроде работает. 

Код

первый код:     
    public class Test {
        public static void main(String args []){
         for(int a = 2, i = 1; i < a; a = 2 * a - 1,i++){
            if(a <=10000){
              System.out.print(a + " "); }
            }
        }
    }
    с циклом for выводит вот так: 3 5 9 17 33 65 129 257 513 1025 2049 4097 8193


Код

второй код:
 
    public class Test {
        public static void main(String args []){
            int a = 2;
            while(true){
                if(a <= 10000){
                    a = 2 * a - 1;
                    System.out.print(a + " ");
                }
            }
        }
    }
     
    с циклом while выводит вот так: 3 5 9 17 33 65 129 257 513 1025 2049 4097 8193 16385
     
    подскажите как правильно написать с циклом while!

PM MAIL   Вверх
LSD
Дата 21.9.2011, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
turtles
Дата 21.9.2011, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 17.2.2011

Репутация: нет
Всего: нет



Подскажите по коду что не правильно не могу разобраться!
вроде бы все логически правильно
Код

public class Test {
    public static void main(String args []){
      for(int a = -166, i = 1; a > 9 && a < 100; a = 2 * a + 200, i++){
           System.out.println(a + " ");
       }
    }
}


Не выводит результат на экран все двузначные члены последовательности!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0547 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.