#java
Как можно проверить, образуют ли цифры возрастающую последовательность? Задание: Написать консольную программу, определяющую, образуют ли цифры некоторого числа, строго возрастающую последовательность. Например: 446 - не образуют, 789 - образуют. public class Check { private static double getNumber(String string) { return Double.valueOf(string); } public static void main(String[] args) { if(args.length == 1) { double number = getNumber(args[0]); } else { System.out.println("Input number"); } } }
Ответы
Ответ 1
Сравнивать остатки при делении на 10 boolean testIncreasing(int AVal) { byte oldNum = 11; byte curNum = 10; while (AVal > 0 && curNum < oldNum) { oldNum = curNum; curNum = AVal % 10; AVal /= 10 } return AVal == 0; }Ответ 2
Как вариант, можно использовать и такое решение: String numberString = Integer.toString(number); return Stream.of(numberString.split("")) .distinct().sorted() .collect(Collectors.joining()) .equals(numberString);Ответ 3
https://ideone.com/V0Q7Uk /* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { private static void check(String num) { for (int q=0; q'9') { System.out.println("Invalid input: " + num); return; } else if (q > 0 && num.charAt(q) <= num.charAt(q-1)) { System.out.println("NO: " + num); return; } } System.out.println("YES: " + num); } public static void main (String[] args) throws java.lang.Exception { for (Scanner scanner = new Scanner(System.in); scanner.hasNextLine(); ) { check(scanner.nextLine()); } } }
Комментариев нет:
Отправить комментарий