Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Наибольшая цифра трехзначного числа

32K
31 августа 2011 года
turtles
42 / / 18.02.2011
Здравствуйте! Подскажите по коду не могу разобраться где не правильно, у меня иногда в программе не правильно показывает наибольшию цифру трехзначного числа

Программа составлена по заданию:
Создать программу, выводящую на экран случайно
сгенерированное трёхзначное натуральное
число и его наибольшую цифру.
Код:
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);
 
             }
       }
}

И еще такой вопрос по какой формуле можно также вычислить наибольшию цифру четырех и пятизначного числа и т.д.
278
31 августа 2011 года
Alexander92
1.1K / / 04.08.2008
А что, для числа с произвольным количеством цифр уже не оно? :)
На 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]
277
31 августа 2011 года
arrjj
1.7K / / 26.01.2011
Код:
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));
     }
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог