如何从整数中删除最小值并在不使用字符串的情况下返回其余数字[关闭]

Posted

技术标签:

【中文标题】如何从整数中删除最小值并在不使用字符串的情况下返回其余数字[关闭]【英文标题】:how to remove smallest value digit from an integer and return the rest of it without using string [closed] 【发布时间】:2014-02-22 06:37:49 【问题描述】:

如何在不使用字符串的情况下从整数中删除最小值并返回其余部分。就像我们有数字 4412,然后删除 1 并返回 442。 我做了提取最小数字的编码,但不知道如何组合其余数字。

public class RemoveSmallestDigit 

    static int testcase1 = 4487;
    static int testcase2 = 1111;

    public static void main(String args[])
        RemoveSmallestDigit testInstance = new RemoveSmallestDigit();
        int result = testInstance.removeSmallestDigit(testcase1);
        System.out.println(result);
    

    //write your code here
    public int removeSmallestDigit(int num)
        int small=9;
        int digit=0;
        while(num!=0)
            digit=num%10;
            num=num/10;
            if(digit<=small)
                small=digit;
            
        
        System.out.println(small);
        return small;

    

【问题讨论】:

从号码中提取数字但无法再次组合它们 现在你知道了最小数字的值,你能写一个循环找到那个数字吗? 当最小数字有两个实例时,要求怎么说?比如你用 44121 做什么? 【参考方案1】:

我建议您将其分解为多个步骤。例如,你可能会做类似的事情

    查找数字的位数并存储为数组

    找到最低位并将其从数组中删除

    将新数组转换回数字

当然,如果您发现一些对您更有意义的东西,您可以提出自己的步骤。主要思想是将问题分解为更小的问题。如果您对这些小问题有任何疑问,请回来提出更多问题。

【讨论】:

对不起,我不能使用数组。我必须在没有数组的情况下解决它 @user3109998:即使没有数组,也可以使用 code-guru 的建议。但是,您介意向我们展示您最近的解决方案尝试吗?您最初的问题看起来像是在乞求代码,我很确定这不是您的意图。通过向我们展示您所做的事情来证明我是对的。 公共类 RemoveSmallestDigit static int testcase1 = 4487;静态int testcase2 = 1111; public static void main(String args[]) RemoveSmallestDigit testInstance = new RemoveSmallestDigit(); int 结果 = testInstance.removeSmallestDigit(testcase1); System.out.println(结果); //在这里写你的代码 public int removeSmallestDigit(int num) int small=9;整数位数=0; while(num!=0) 数字=num%10;数=数/10;如果(数字 @user3109998 如我的示例所示,您应该首先用英语或您的母语描述您需要采取的步骤。【参考方案2】:
public  int removeSmallerdigit( int a)

  int smalldigit=0;

int ReverseNumber=0;
int finalNumber=0;
int digit=0;
       while(a>0)
        
               digit=a%10;
                 a=a/10;
               if(smalldigit>digit)
                  
                     smalldigit=digit;
                  
        ReverseNumber=ReverseNumber*10+digit;
       

       while(ReverseNumber>0)
         
              digit=ReverseNumber%10;
                ReverseNumber=ReverseNumber/10;
               if(smalldigit!=digit)
                  
                     finalNumber=finalNumber*10+digit;
                  

       
    return finalNumber;

【讨论】:

以上是关于如何从整数中删除最小值并在不使用字符串的情况下返回其余数字[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不删除任何文件的情况下从跟踪中分离文件夹?

如何从 javascript 变量发送表单值并在 php 中作为整数接收? [复制]

Spring,如何在不使用附加转换器的情况下从字符串返回XML响应?

在不使用图表的情况下以最小产品从第一个索引到最后一个索引?

如何在不使用对象的情况下连接字符串、整数和浮点数?

如何在不编写正则表达式的情况下从字符串中解析日期?