【问题标题】:Split two digit int拆分两位整数
【发布时间】:2012-09-14 15:28:23
【问题描述】:

我想将一个两位整数拆分为两个一位整数!例如:

20 = 2 and 0

15 = 1 and 5

8  = 0 and 8

【问题讨论】:

  • int 永远不会有 2 位数字。它总是有 32 位。

标签: c# math int


【解决方案1】:

这很简单:使用% 获取数字的模,使用/ 进行整数除法(即舍弃小数部分的除法)。

您的数字采用十进制系统(即基数为 10),因此您除以 10 并取模,如下所示:

int a = 20 / 10; // 2
int b = 20 % 10; // 0

要逐位打印一个数字,首先是最低有效位,您可以使用以下循环:

int a = 12345;
while (a != 0) {
    lastDigit = a % 10;
    Console.WriteLine(lastDigit);
    a /= 10;
}

【讨论】:

  • 如果我有 8 个呢? (并想得到 0 和 8)
  • @Michael 同样的事情也会起作用:8/10 给你零,8%10 仍然是8
  • @Michael 你试过了吗?这段代码显然适用于8。它不适用于超大的值0...99,但它们不是两位整数。
【解决方案2】:
int i = 45; // or anything you want

int firstDigit = i / 10;
int secondDigit = i % 10;

其实很简单。 您也可以使用模数和除法运算对 3 位数字执行此操作,但我会让您自己弄清楚。 ;)

【讨论】:

    【解决方案3】:

    是的,很简单。

    int m =2123;
    int n=m;
    while (n != 0) { 
        y=n%10; //variable holds each digit out of the number m.
        Console.WriteLine(y);
        n /= 10;
    }
    

    【讨论】:

      【解决方案4】:

      如果您有一个整数数组,那么您可以很好地使用 LINQ,否则只需使用以下任何答案。

      int num = 86;
      int digit1 = num / 10;
      int digit2 = num % 10;
      

      你的号码只有两位数吗?

      【讨论】:

        【解决方案5】:
                int input = 15;
                int first = 0;
                int second = Math.DivRem(input, 10, out first);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-07-29
          • 1970-01-01
          • 2018-01-06
          • 1970-01-01
          • 2015-12-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多