首页 > 解决方案 > 基于最大值和最小值的整数范围

问题描述

在我的课堂上,我被要求:

创建一个具有单个整数参数的方法并返回整数参数的范围。

(负整数参数可以视为正整数。)

澄清示例:

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 循环多次运行时遇到了麻烦,我觉得解决这个问题会使这项工作(至少比以前更好)

标签: java

解决方案


你为什么使用变量“三”?我认为不需要。我建议您使用以下代码:

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));
    
    }
}

推荐阅读