【问题标题】:Splitting integer for two parts将整数拆分为两部分
【发布时间】:2018-01-06 22:23:34
【问题描述】:

我需要将一个整数分成两部分 - 最后一位数字和其他所有内容。

整数可以从 2 位到 4 位。

最快和最安全(类型明智)的方法是什么?

Function(20) >>> int1 = 2; int2 = 0;
Function(763) >>> int1 = 76; int2 = 3;
Function(800) >>> int1= 80; int2 = 0;
Function(1115) >>> int1 = 111; int2 = 5;

【问题讨论】:

  • 你试过什么? (提示模数)
  • 不清楚您当前的解决方案存在什么样的问题。

标签: c# math integer


【解决方案1】:

分割一个方法是

Function(toSplit)
...
    int dozens= toSplit / 10; //(get dozens values)
    int singular = a % 10; //get remaining value, of singular value

【讨论】:

  • 解释您的解决方案似乎更合适,而不是批评所谓的 OP 问题的简单性。
【解决方案2】:

好吧,在快速研究了作为 Gilad Green 提示的模运算符之后,我自己提出了一个解决方案:

int Value = 763;
int First = Convert.ToInt16(Math.Truncate((double) Value / 10));
int Second = Convert.ToInt16((double) Value % 10);

【讨论】:

    【解决方案3】:

    您可以创建一个函数,该函数返回一个包含两个所需元素的数组,如下所示:

    public static int[] function(int number)
    {
        int[] res = new int[2];
        res[0] = number / 10;
        res[1] = number % 10;
        return res;
    }
    

    问候。

    【讨论】:

    • 当我这样调用方法时会发生什么:function(5);
    • function(5) 返回具有以下值的数组:[0, 5]
    【解决方案4】:

    我想你已经定义了this这样的方法:

    public static int[] SplitMyInteger(int inputInteger)
    {
       int[] result=new int[2];
       if(inputInteger>10)
       {
           result[0]=inputInteger%10;
           result[1]=inputInteger/10;
       }
       return result;
    }
    

    这将为您提供一个整数数组,其最后一位数字位于第 0 个索引中,其余部分位于第 1 个索引中,如果该数字小于 10(没有 2 位数字),则两个结果都将为 0;你可以这样调用方法:

    var result = SplitMyInteger(4);
    Console.WriteLine("{0},{1}",result[0],result[1]);
    // prints 0,0
    var result = SplitMyInteger(452);
    Console.WriteLine("{0},{1}",result[0],result[1]);
    // prints 2,45
    

    【讨论】:

      猜你喜欢
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-11
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多