import java.util.Scanner;
class Main {
// getter функция, берущая значение у пользователя
static int getNumb() {
Scanner numbS = new Scanner(System.in);
int numb = numbS.nextInt();
return numb;
}
public static void main(String [ ] args) {
// Инициализация нужных переменных
int numbs[] = new int[99];
int i = 0;
int max = 0;
// До тех пор, пока не будет введён 0, будет вызываться функция getNumb
while(true) {
numbs[i] = getNumb();
if(numbs[i] == 0) {
break;
}
// Если введённый элемент массива больше переменной max, то ей присваивается этот элемент
else if(numbs[i] > max) {
max = numbs[i];
}
}
System.out.print(max);
}
}
Здесь лучше всего делать подбором, числа я обозначил жирным шрифтом:
Пусть первой буквой будет А:
А А 3 = 3 (1*1*3 = 3, означает что таких слов может быть 3 штуки)
А В 3 = 3
А У 0 = 0 (1*1*0 = 0, здесь таких слов не может быть, так как в конце должна стоять согласная буква, но после У в алфавитном порядке таких букв нет)
А З 2 = 2
А М М = 1
А И М = 1
Пусть первой буквой будет В:
В В 3 = 3
В У 0 = 0
В З 2 = 2
В М М = 1
В И М = 1
Пусть первой буквой будет М:
М М М = 1
М У 0 = 0
Пусть первой буквой будет З:
З З 2 = 2
З У 0 = 0
З М М = 1
З И М = 1
Пусть первой буквой будет У:
У 0 0 = 0
Пусть первой буквой будет И:
И М М = 1
И И М = 1
В итоге складываем существующие слова: 3+3+0+2+1+1+3+0+2+1+1+1+0+2+0+1+1+0+1+1 = 10 + 7 + 1 + 4 + 0 + 2 = 24
ответ: 24
using System;
using System.Text.RegularExpressions;
internal class Program
{
private static void Main()
{
var test_lines = new[]
{
"Я сегодня съела 2 булочки, 7 сосисок и выпила 3 чашки кофе.",
"Старший брат родился в 1990 году, а младший - в 2000г.",
"Мне нравится книга '100 лет одиночества'"
};
foreach (var test_line in test_lines)
{
Console.WriteLine(test_line);
Console.WriteLine("Самое большое число в строке {0} или {1}", FindMaxNumber(test_line), FindMaxNumberWithRegex(test_line));
}
Console.WriteLine();
Console.WriteLine("Введите строку");
var line = Console.ReadLine();
Console.WriteLine("Самое большое число в строке {0} или {1}", FindMaxNumber(line), FindMaxNumberWithRegex(line));
Console.ReadKey();
}
private static int FindMaxNumberWithRegex(string line)
{
var matches = Regex.Matches(line, @"[0-9]+"); //находим все вхождения цифр в строку, не зависимо от того часть это слова или нет
if (matches.Count < 1) return -1;
var max = -1; //предполагаем что ищем лишь положительные числа
foreach (Match match in matches)
{
var num = int.Parse(match.Value); //переводим строку в число, то что это число мы уже знаем
max = Math.Max(max, num);
}
return max;
}
private static int FindMaxNumber(string line)
{
var words = line.Split(new[] { ' ', ',', '.', '-', ':' }, StringSplitOptions.RemoveEmptyEntries);//разбивает строку на массив строк
var max = -1; //предполагаем что ищем лишь положительные числа
foreach (var word in words)
{
if (int.TryParse(word, out var num) && num > max) //если слово есть число и оно больше максимума
{
max = num;
}
}
return max;
}
}