public class Test {
public static void main(String args []){
final int min = 100;
final int max = 999;
int first;
int second;
int third;
int value_max;
int value = (int) (min + Math.random() * (max - min)) ;
if(value > min && value < max) {
first = (int) Math.floor(value / 100);
second = (int) Math.floor((value - first * 100) / 10);
third = (int) Math.floor(value - first * 100 - second * 10);
System.out.println("Трехзначное число = " + value);
if(first > second){
value_max = first;
if(value_max < third){
value_max = third;
} else {value_max = second;}
}else{ value_max = second;}
if(value_max < third)
value_max = third;
System.out.println("Первое число = " + first);
System.out.println("Второе число = " + second);
System.out.println("Третье число = " + third);
System.out.println("Максимальное число = " + value_max);
}
}
}
Наибольшая цифра трехзначного числа
Программа составлена по заданию:
Создать программу, выводящую на экран случайно
сгенерированное трёхзначное натуральное
число и его наибольшую цифру.
Код:
И еще такой вопрос по какой формуле можно также вычислить наибольшию цифру четырех и пятизначного числа и т.д.
На Java сами переведете, я думаю.
[CODE=C#]
using System;
namespace MaxDigit
{
public class Test
{
public static int GetMaxDigit(int number)
{
int totalDigitsNumber = (int)Math.Floor(Math.Log(number, 10));
int maxDigit = 0;
for (int i = 0; i <= totalDigitsNumber; i++)
{
int currentDigit = number % 10;
if (currentDigit > maxDigit)
maxDigit = currentDigit;
number = (int)Math.Floor((double)number / 10);
}
return maxDigit;
}
public static void Main(string[] args)
{
Console.Write("Введите количество цифр в числе: ");
int totalDigitsNumber = Convert.ToInt32(Console.ReadLine());
Random rnd = new Random();
int number = rnd.Next(0, (int)Math.Pow(10, totalDigitsNumber));
Console.WriteLine("Number = {0}, max digit = {1}", number, Test.GetMaxDigit(number));
}
}
}
[/CODE]
Код:
public class Test {
public static int GetMaxDigit(int number)
{
int maxDigit = 0;
while(number>0)
{
if(maxDigit<number%10)
maxDigit=number%10;
number=number/10;
}
return maxDigit;
}
public static void main(String args [])
{
System.out.print("Введите количество цифр в числе: ");
java.util.Scanner s = new java.util.Scanner(System.in);
int totalDigitsNumber = s.nextInt();
if(totalDigitsNumber<1 || totalDigitsNumber>10)
{
System.out.println("Цифр в числе должно быть от 1 до 10");
return;
}
int number = (int)(Math.random()*(Math.pow(10, totalDigitsNumber)-Math.pow(10,totalDigitsNumber-1))+Math.pow(10,totalDigitsNumber-1));
System.out.println("Число: "+number+" Наибольшая цифра: "+GetMaxDigit(number));
}
}
public static int GetMaxDigit(int number)
{
int maxDigit = 0;
while(number>0)
{
if(maxDigit<number%10)
maxDigit=number%10;
number=number/10;
}
return maxDigit;
}
public static void main(String args [])
{
System.out.print("Введите количество цифр в числе: ");
java.util.Scanner s = new java.util.Scanner(System.in);
int totalDigitsNumber = s.nextInt();
if(totalDigitsNumber<1 || totalDigitsNumber>10)
{
System.out.println("Цифр в числе должно быть от 1 до 10");
return;
}
int number = (int)(Math.random()*(Math.pow(10, totalDigitsNumber)-Math.pow(10,totalDigitsNumber-1))+Math.pow(10,totalDigitsNumber-1));
System.out.println("Число: "+number+" Наибольшая цифра: "+GetMaxDigit(number));
}
}