С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
4 / 4 / 0
Регистрация: 04.09.2018
Сообщений: 13
1

Найти максимальное число, которое можно получить, удалив одну цифру заданного целого числа

06.09.2018, 11:03. Показов 5276. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Если задано целое число n, найдите максимальное число, которое вы можете получить, удалив ровно одну цифру заданного числа.

пример

Для n = 152 выход должен быть равен 52;

Для n = 1001 выход должен быть равен 101.

Придумал такое, но считает не всегда верно.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  public int DeleteDigit(int n)
        {
              string N = n.ToString(), output = string.Empty;
            int min = Convert.ToInt32(N[0].ToString());
            bool f = true;
            foreach (char c in N)
                if (Convert.ToInt32(c.ToString()) < min)
                    min = Convert.ToInt32(c.ToString());
            foreach (char ch in N)
            {
               if (f == true)
                {
                    if (Convert.ToInt32(ch.ToString()) == min)
                    {
                        f = false;
                        continue;
                    }
                }
                output += ch;
            }
            return Convert.ToInt32(output);
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2018, 11:03
Ответы с готовыми решениями:

Найти наибольшую цифру заданного целого десятичного числа
Дано натуральные числа от 10 до N. Найти наибольшую цифру целого десятичного числа.

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

Дано целое двухзначное число a. Получить удвоенное значение наименьшего числа, которое можно получить из цифр заданного числа a
Дано целое двухзначное число a. Получить удвоенное значение наименьшего числа, которое можно...

Найти число, которое находится как можно дальше от ближайшего к нему целого числа
Написать программу, которая выполняет: 1)Ввод с клавиатуры вещественных чисел. Введение числа 127...

8
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
06.09.2018, 11:12 2
У char есть char.GetNumericValue(sameChar)
0
4 / 4 / 0
Регистрация: 04.09.2018
Сообщений: 13
06.09.2018, 12:40  [ТС] 3
и как это должно мне помочь ?
0
33 / 14 / 4
Регистрация: 24.09.2013
Сообщений: 45
06.09.2018, 13:13 4
Лучший ответ Сообщение было отмечено красныймакасин как решение

Решение

C#
1
2
3
4
5
            string n = "19529";
            int res = 0;
            for (var i = n.Length-1; 0<=i; i--)
                if (res < Convert.ToInt32(n.Remove(i,1)))
                    res = Convert.ToInt32(n.Remove(i,1));
Должно работать
1
535 / 325 / 169
Регистрация: 21.02.2011
Сообщений: 4,967
06.09.2018, 14:09 5
Лучший ответ Сообщение было отмечено красныймакасин как решение

Решение

можно даже еще короче
C#
1
2
3
  string s = n.ToString();
            List<string> lst = s.Select((t, i) => s.Remove(i, 1)).ToList();
            return lst.Max(str => int.Parse(str));
1
170 / 91 / 71
Регистрация: 10.05.2014
Сообщений: 432
06.09.2018, 15:39 6
andreyfreelans, можно еще короче)))

C#
1
2
static int MaxNumber(int a) => 
     a.ToString().Select((v, i) => int.Parse(a.ToString().Remove(i, 1))).ToList().Max();
1
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
06.09.2018, 17:03 7
Лучший ответ Сообщение было отмечено красныймакасин как решение

Решение

А что если так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(12563.GetNumbers().Max());
 
        Console.ReadKey();
    }
}
 
internal static class Helpers
{
    public static IEnumerable<int> GetNumbers(this int num)
    {
        for (int i = 1; true; i++)
        {
            var pow = (int)Math.Pow(10, i);
 
            var value = num / pow * (pow /= 10) + num % pow;
 
            if (value == num) break;
 
            yield return value;
        }
    }
}
1
535 / 325 / 169
Регистрация: 21.02.2011
Сообщений: 4,967
06.09.2018, 19:53 8
Zodt, думаю ТС врядли поймет такой код)
но если рассматривать решение в одну строку, то я бы сделал так:
C#
1
Enumerable.Range(0, n.ToString().Length).Select(i => int.Parse(n.ToString().Remove(i, 1))).Max();
1
Zodt
10.09.2018, 17:32     Найти максимальное число, которое можно получить, удалив одну цифру заданного целого числа
  #9

Не по теме:

andreyfreelans, из этой оперы?)))

0
10.09.2018, 17:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2018, 17:32
Помогаю со студенческими работами здесь

Дано трёхзначное число. Верно ли, что, удалив одну из его цифр, можно получить число, делящееся на3?
Дано трёхзначное число. Верно ли, что, удалив одну из его цифр, можно получить число, делящееся на3?

Найти самое маленькое число, которое можно составить из цифр заданного четырехзначного числа
Задача составаить из четерехзначного числа самое маленькое число, которое можна составить из его ...

Верно ли, что, удалив одну из его цифр, можно получить число, делящееся на 3?
Дано трёхзначное число. Верно ли, что, удалив одну из его цифр, можно получить число, делящееся на...

Дано целое двухзначное число a. Получить наибольшее число, которое можно получить из цифр числа a
Дано целое двухзначное число a. Получить наибольшее число, которое можно получить из цифр числа a....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru