Forums -> Флейм -> Вопрос по Java
| Full Version

Dimych
Добрый вечер!

подскажите плиз, как реализовать метод, который ожидает параметр int.
в методе должны суммироваться все числа от 1 до "параметр" и выводить на экран.
На пример: value = 5, result = 1 + 2 +3 + 4 + 5 = 15

Спасибо!!!!
muaddib
синтакса жабы точно не помню поэтому пишу почти псевдо-кодом:
CODE

foo(int param) {

int i = 1;
int sum = 0;

while ( i < param) {
   
     sum += i;
     System.out.print(i + "+"); //no newline!
     i++;
}

System.out.println( i + "=" + sum);

}


вот что-то типа того, если шо нетак я не виноват
Dimych
muaddib

Cпасибо огромное все так только в условии цикла нужно включительно, т.е. while ( i <= param)

Eще раз спасибо!!!!!!!!!!!!!!
muaddib
тогда убери i из второго printlnа, я имел в виду чтоб он вышел на предпосленем числе - i все равно поднимится - но упустил добавку в sum, после while. но и с <= тоже работать будет, только с соответствующими изменениями. удачи.
gfarry
кстати если нужно печатать/вычислять только результат, то вроде формула должна быть (n+1)*n/2, тогда цикл не нужен, да и производительность для больших N значительно лучше.
Dimych
gfarry

Cпасибо за ответ!!!
В задании стоит сделать именно в цикле :)
Set
Раздел "Программирование" пора создавать. :D

result = 0;
for (i = 1; i <= value; i++) result += i;

Dimych
еще один вопросик по Java
нужно,чтобы генерировались числа случайным образом, занасились в массив.При этом нужно проверять, чтоб в массиве небыло одинаковых чисел.
Как это реализовать?
Генерация чисел и запись их в массив не проблема, но вот как проверить, чтоб небыло одинаковых???


CODE

public class Rnd{

    public static void main(String [] args){
         Random rnd=new Random();
        int [] field=new int[10];
          for (int i=0;i<field.length;i++){
           while(true){
               int ran=rnd.nextInt(11);
             for (int j=0;j<field.length;j++){
                if (ran=field[j])
                             // отсюдого должно возвращаться в начало бесконечного цикла
                   else
                         field[i]=ran;
                       // после этого должен прерываться бесконечный цикл

      }
    }
           for (int i=0;i<field.length;i++)
      System.out.print(field[i]);
  }
}


что нужно дописать в частях кода, где коментарии???

свои варианты,тоже, приветствуются!!!

thx in advance!!!!
mailby
Можно Set для этого использовать:

CODE
       int length = 10;
       Random rnd=new Random();
       int [] field = new int[length];
       Set set = new HashSet();
       while(set.size() < length){
           Integer integer = new Integer(rnd.nextInt());
           set.add(integer);
       }
       Object[] array = set.toArray();
       for (int i = 0; i < array.length; i++) {
           field[i] = ((Integer)array[i]).intValue();
           System.out.println("field[i] = " + field[i]);
       }
FiL
Dimych,
А когда экзамен сдашь, то кому зачет пойдет? :)

Dimych
mailby

спасибо!!!!
Ох ты закрутил, буду разбираться....:)

Зы:а в моем коде не знаешь, что можно подправить/добавить?

Fil

это я для себя мучаюсь....:)
mailby
QUOTE (Dimych @ 09-04-2005, 15:27)

Зы:а в моем коде не знаешь, что можно подправить/добавить?

Твой код можно было бы так переписать

CODE
       Random rnd = new Random();
       int[] field = new int[10];
       for (int i = 0; i < field.length; i++) {
           int ran;
           boolean found;
           do {
               found = false;
               ran = rnd.nextInt(11);
               for (int j = 0; j < field.length; j++) {
                   if (field[j] == ran) {
                       found = true;
                       break;
                   }
               }
           } while (found);
           field[i] = ran;
       }
       for (int i = 0; i < field.length; i++) {
           System.out.println(field[i]);
       }
FiL
QUOTE (Dimych @ 09-04-2005, 10:27)
это я для себя мучаюсь....:)
Так я как раз о том, что ты не сам мучаешься, а других просишь. Ладо если действительно сложные задачи и не знаешь как подойти к решению. Но самые основы... все-таки такие вещи надо-бы писать самому.
Dimych
QUOTE (FiL @ 10-04-2005, 07:06)
QUOTE (Dimych @ 09-04-2005, 10:27)
это я для себя мучаюсь....:)
Так я как раз о том, что ты не сам мучаешься, а других просишь. Ладо если действительно сложные задачи и не знаешь как подойти к решению. Но самые основы... все-таки такие вещи надо-бы писать самому.
Fil

А ты сразу праграммистом родился??? И азы еще в утробе матери освоил???
Или ты думаешь,я задаю тут вопросы потому, что меня прикалывает флеймом заниматься???

Да и потом, я совета,как лучше учить, не просил!!!

mailby

Спасибо тебе большое!!!!!!!!!!!!!
FiL
Dimych,
нет, я программистом не родился. Я учился. Но домашнее задание делал сам :)
Dimych
Fil

Вот и я учусь. Только домашнее задание сам себе выдумываю.... :p