воскресенье, 22 января 2012 г.

Методы: не только с массивами


Для того, что у вас не сложилось впечатление, будто бы методы используют только для работы с массивами, я предлагаю решить несколько задач, где удобно пользоваться методами, хотя речь не идет о массивах.

Задание №1
Назовем "весом числа" сумму его цифр.
Напишите класс, который генерирует серию из 20 случайных чисел из диапазона от 1 до 100000 и определяет "вес" каждого числа.
Класс также должен определить, какое из чисел (по величине и по порядку) в серии имело максимальный "вес".

Задание №2
Назовем "порядком четности числа" количество четных цифр в числе.
Напишите класс, который генерирует серию из 20 случайных чисел из диапазона от 1 до 100000 и определяет "порядок четности" каждого числа.
Класс также должен определить, какое из чисел (по величине и по порядку) в серии имело максимальный "порядок четности".

Задание №3
Напишите класс, который генерирует серию из 20 случайных чисел из диапазона от 1 до 100000 и для каждого числа строит новое число - с обратным порядком цифр.
Для каждой пары ("старое" число и "новое" число) следует определить количество одинаковых цифр, стоящих на одинаковых местах.
Например, для "старого" числа 72825 должно быть создано "новое" число 52827, и в них есть две цифры (2), стоящие на одинаковых местах (втором и четвертом).
Класс должен выводить на экран для каждого числа в серии и его новое число, и результат сравнения цифр.


3 комментария:

  1. import java.util.*;
    class ves{
    static Scanner reader=new Scanner(System.in);
    static int ves(int t){
    int sum=0;

    while (t!=0){sum+=(t%10); t/=10;}
    return sum;
    }
    static int Fmax(int [][]a){int max=a[0][1];int iMax=0;
    for (int i=0;i<20;i++){if(a[i][1]>max) {max=a[i][1];iMax=i;}}return iMax;


    }


    public static void main(String[]args){
    int a[][]=new int[20][2];
    for (int i=0;i<=19;i++){
    a[i][0]=(int)(Math.random()*100000+1);

    a[i][1]=ves(a[i][0]);
    System.out.println(a[i][0]+" "+a[i][1]);}

    System.out.print("Максимальный вес имеет число "+a[Fmax(a)][0]+", его порядковый номер "+(Fmax(a)+1));
    }}

    ОтветитьУдалить
  2. import java.util.*;
    class orderChetnosti{

    static Scanner reader=new Scanner(System.in);

    static void generator(int t[][]){//Забиваем массив
    for (int i=0;i<20;i++){t[i][0]=(int)(Math.random()*100000+1);
    };
    }

    static int Por(int t) //проверка на кол-во четных цифр
    {int k=0,count=0;
    while (t!=0) {k=t%10;t/=10;
    if(k%2==0) count++;}
    return count;}

    static int Fmax(int [][]a){//поиск максимального порядка четности
    int max=a[0][1];int iMax=0;
    for (int i=0;i<20;i++){if(a[i][1]>max) {max=a[i][1];iMax=i;}}return iMax;}

    public static void main(String [] args)
    {
    int [][] t=new int[20][2];
    generator(t);
    for (int i=0;i<20;i++)
    {t[i][1]=Por(t[i][0]);System.out.println(t[i][0]+" "+t[i][1]);}
    System.out.print("Максимальный порядок четности имеет число "+t[Fmax(t)][0]+" его порядковый номер "+(Fmax(t)+1));
    }}

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