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

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));
}}
Freeman это я))
ОтветитьУдалить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));
}}