我整晚都在试图回答这个问题,但我认为我的大脑在期中考试中太煎熬了,无法正确回答。所以问题正是[引用]:编写一个方法 highLow,它接受一个整数作为参数并返回该数字是否具有交替的“高”和“低”数字。0 到 4 是“低”位,5 到 9 是“高”位。如果传递的数字在“高”和“低”数字之间交替,您的方法应该返回 true,否则返回 false。您可以假设传递的数字是正数。如果传递的数字由单个数字组成,则您的方法应返回 true。
注意:如果数字交替以“高”数字开头或以“低”数字开头,则该方法返回 true。重要的是数字交替。例如,highLow(9292) 和 highLow(2929) 都应该返回 true。
以下是对该方法的一些示例调用及其结果返回值:
返回值 highLow(1918193) true highLow(7283) true highLow(3827) true highLow(9388) false highLow(895151) false highLow(707) true highLow(44) false highLow(45) true highLow(5) true 您可以不使用字符串来解决这个问题
这是我最近的尝试:
public class Practeese {
public static void main(String[] args) {
highLow(1918193);
highLow(7283);
highLow(3827);;
highLow(9388);
highLow(895151);
highLow(707);
highLow(44);
highLow(45);
highLow(5);
}
public static boolean highLow(int n) {
// boolean isHigh = true;
// boolean isLow = true;
boolean test = true;
while (n > 0) {
boolean isHigh = true;
boolean isLow = true;
if (n % 10 >= 5) {
isHigh = true;
} else if (n%10<=5) {
isLow = true;
} else {
return false;
}
n = n / 10;
if (n % 10 == 0 && (isLow!= isHigh)) {
test = true;
} else {
test = false;
}
}
return test;
}
}
我知道这是一个围栏式的问题,但我似乎可以解决它。任何帮助表示赞赏。