#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()); } } }
Комментариев нет:
Отправить комментарий