вторник, 4 октября 2011 г.

Задачи на цикл for и случайные числа -- очень разные


Предлагаю еще несколько задач на использование цикла for и случайные числа – в этот раз задачи все разного уровня сложности.

Задание №1
Напиши класс, который принимает с клавиатуры два целых числа (Х и N) – и генерирует серию из 16 случайных чисел, отличающихся по значению от Х не более, чем на N.

Задание №2
Напиши класс, который принимает с клавиатуры два целых числа (Х и N) – и генерирует серию из 16 случайных чисел, отличающихся по значению от Х не более, чем на N. Кроме того, должно быть соблюдено дополнительное условие: первая половина серии должна состоять из чисел, больших Х, а вторая – из чисел, меньших Х.

Задание №3
Напиши класс, который принимает с клавиатуры два целых числа (Х и N) – и генерирует серию из 16 случайных чисел, отличающихся по значению от Х не более, чем на N. Кроме того, должно быть соблюдено дополнительное условие: числа в серии должны идти "зигзагом" по отношению к Х – то есть первое число в серии должно быть больше Х, второе – меньше, третье – снова больше, четвертое – снова меньше, и так далее.

Задание №4
Напиши класс, который принимает с клавиатуры два целых числа (Х и N) – и генерирует серию из 16 случайных чисел, отличающихся по значению от Х не более, чем на N. Кроме того, должны быть соблюдены два дополнительных условия:
1.      числа в серии должны идти "зигзагом" по отношению к Х – то есть первое число в серии должно быть больше Х, второе – меньше, третье – снова больше, четвертое – снова меньше, и так далее;
2.      числа, большие Х, должны быть четными, а те, которые меньше Х – нечетными.

Задание №5
Напиши класс, который принимает с клавиатуры два целых числа (Х и N) – и генерирует серию из 16 случайных чисел, отличающихся по значению от Х не более, чем на N. Кроме того, должны быть соблюдены три дополнительных условия:
1.      числа в серии должны идти "зигзагом" по отношению к Х – то есть первое число в серии должно быть больше Х, второе – меньше, третье – снова больше, четвертое – снова меньше, и так далее;
2.      числа, большие Х, должны быть четными, а те, которые меньше Х – нечетными;
3.      числа, большие Х, должны представлять неубывающую серию, а числа, меньшие Х, должны представлять невозрастающую серию.

Честно говоря, все задачи я придумал прямо вот тут на ходу – и, кажется, получились какие-то зубодробительные… Так что добавляю несколько нормальных…

Задание №6
Напиши класс, который генерирует серию из 20 случайных целых положительных двузначных чисел и проверяет, сколько раз в серии встречаются такие пары соседних чисел, в которых оба числа – четные.

Задание №7
Напиши класс, который генерирует серию из 20 случайных целых положительных двузначных чисел и проверяет, какие пары соседних чисел в серии встречаются чаще: те, в которых оба числа – четные, или такие, в которых оба числа – нечетные.

Задание №8
Назовем "связной цепочкой" три соседних числа (в серии двузначных положительных случайных чисел), для которых выполняется следующее условие: последняя цифра первого числа равна первой цифре второго числа, а также первая цифра третьего числа равна второй цифре второго числа (как, например – 34 47 71).
Напиши класс, который принимает с клавиатуры целое положительное число N и генерирует серию из N двузначных положительных чисел – и проверяет:
1.      сколько в серии было "связных цепочек";
2.      каким было самое большое число из всех, относящихся к "связным цепочкам";
3.       в какой по порядку "связной цепочке" встречалось самое большое число.
Примечание: можно представить несколько вариантов этого задания – сначала такое, которые содержит решение только первого пункта, затем – с решением первого и второго пунктов, потом – полный вариант.


8 комментариев:

  1. import java.util.*;
    class Zadanie_1
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    int x,n,a,i;
    x=reader.nextInt ();
    n=reader.nextInt();
    for (i = 1; i<17; i++)
    {
    a=(int)(((x+n)-(x-n)+1)*Math.random())+(x-n);
    System.out.print (a+" ");
    }
    }
    }

    ОтветитьУдалить
  2. import java.util.*;
    class Zadanie_2
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    int x,n,b,a,i;
    x=reader.nextInt ();
    n=reader.nextInt();
    for (i = 1; i<=8; i++)
    {
    a=(int)(((x+n)-(x+1)+1)*Math.random())+(x+1);
    System.out.print (a+" ");
    }
    for (i = 1; i<=8; i++)
    {
    b=(int)(((x-1)-(x-n)+1)*Math.random())+(x-n);
    System.out.print (b+" ");
    }
    }
    }

    ОтветитьУдалить
  3. import java.util.*;
    class Zadanie_3
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    int x,n,b,a,i;
    x=reader.nextInt ();
    n=reader.nextInt();
    for (i = 1; i<=8; i++)
    {
    a=(int)(((x+n)-(x+1)+1)*Math.random())+(x+1);
    b=(int)(((x-1)-(x-n)+1)*Math.random())+(x-n);
    System.out.print (a+" "+b+" ");
    }
    }
    }

    ОтветитьУдалить
  4. import java.util.*;
    class Zadanie_4
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    int x,n,b,a,i;
    x=reader.nextInt ();
    n=reader.nextInt();
    for (i = 1; i<=8; i++)
    {
    a=(int)((((x+n)-(x+1)+1)/2)*Math.random())+((x+1)/2);
    a=a*2;
    b=(int)((((x-1)-(x-n)+1)/2)*Math.random())+((x-n)/2);
    b=b*2+1;
    System.out.print (a+" "+b+" ");
    }
    }
    }

    ОтветитьУдалить
  5. Annie, прекрасные решения, умница))))

    ОтветитьУдалить
  6. Спасибо :)
    С Днем Рождения, Владимир Максович!

    ОтветитьУдалить
  7. Спасибо, вы меня так растрогали...
    А фотографию вашу я приспособил на экран своего компа в школе и всем хвалюсь)))

    ОтветитьУдалить