java - 基于最大值和最小值的整数范围
问题描述
在我的课堂上,我被要求:
创建一个具有单个整数参数的方法并返回整数参数的范围。
(负整数参数可以视为正整数。)
澄清示例:
2634982 将产生 7 的范围(因为 9 减去 2)
这是代码:
import java.util.Scanner;
public class Main {
static int Range(int one)
{
int max = 0;
int min = Integer.MAX_VALUE;
int two = 0;
int three = 0;
while (one != 0) {
two = one % 10;
three = one / 10;
System.out.print(two+" "+three);
if (two > max){
max = two;
}
if (two < min){
min = two;
}
//System.out.print("\n"+min+" "+max);
one = max-min;
}
return one;
}
public static void main(String[] args) {
Scanner key = new Scanner(System.in);
System.out.print("Enter an integer: ");
int one = key.nextInt();
System.out.println("\n"+one+" will produce a range of "+Range(one));
}
}
我在 while 循环多次运行时遇到了麻烦,我觉得解决这个问题会使这项工作(至少比以前更好)
解决方案
你为什么使用变量“三”?我认为不需要。我建议您使用以下代码:
import java.util.Scanner;
public class Main {
static int Range(int one)
{
int max = 0;
int min = Integer.MAX_VALUE;
int two = 0;
while (one != 0) {
two = one % 10;
one = one / 10;
//System.out.print(two+" "+three);
if (two > max){
max = two;
}
if (two < min){
min = two;
}
//System.out.print("\n"+min+" "+max);
}
one = max-min;
return one;
}
public static void main(String[] args) {
Scanner key = new Scanner(System.in);
System.out.print("Enter an integer: ");
int one = key.nextInt();
System.out.println("\n"+one+" will produce a range of "+Range(one));
}
}
推荐阅读
- java - 如何使用正则表达式在lookhead中给出范围,例如 ^(?=(.*[az]){1,3})(?=.*[0-9]).{2,5}$
- angular - 更新到 Angular 6 版本后 Angular Cli 无法正常工作
- exception - NullPointerException 和 IllegalAccessException 的不同行为
- regex - 使用正则表达式捕获多个电话号码
- udp - 通过环回接口的 UDP 最大数据包大小
- c++ - UE4 类运算符 bool() 重载
- css - Vuejs 和 css 不能在 Firefox 上运行?
- java - 通过电子表格将 JSOUP 的 URL 导入到 Scrape
- amp-html - amp goback 按钮导航到上一页
- sas - 可以将哪些数据集选项附加到给定的数据集以替换在日志中生成以下错误的 DROP 语句?