数字的第一个数字加上第二个数字

时间:2017-10-12 16:47:53

标签: java

我想取904并做9 + 0,但904是int变量。我确实尝试了以下代码,但如果用户更改了数字i,则它并不总是有效。

int i = 567;
int j = (i - (i % 100)) / 100 + ((i % 100) - (i % 10)) / 10;
System.out.println(j);

3 个答案:

答案 0 :(得分:3)

尝试这种方法

int i=567;
String s=i+""; // Puts `+` into concatenation mode.
int a=Integer.parseInt(s.charAt(0)+"");
int b=Integer.parseInt(s.charAt(1)+"");
System.out.println(a+b);

答案 1 :(得分:1)

你可以拿起第三个数字。

int d3 = x / 100;

第二个数字:

int d2 = (x / 10) % 10;

注意:我假设100 <= x <= 999

更新:我想搜索一个快速解决方案,给出位数,这个question提供了一个(可能)好的解决方案:

x = (int)Math.abs(x); // this is for negative numbers
int digits = (int)Math.log10(x) + 1;

这扩展了100 <= x <= 999

的假设
int div = Math.pow(10, digits - 1);
int firstDigit = x / div;
div /= 10;
int secondDigit = (x / div) % div;

这适用于任何x != 0。可能会有更快的解决方案。

答案 2 :(得分:0)

一种方法是制作一个循环,获取最后一个数字(使用i%10),存储该数字,并在再次循环之前将i除以10

void PrintSumFirstTwoDidgets(int i){
    if(i < 10) {
        throw new IllegalArgumentException("i must be at least 10.");
    }
    int secondDigit;
    int firstDigit = i % 10;
    do {
        i /= 10;
        secondDigit = firstDigit;
        firstDigit = i % 10
    } while(i > 0);
    System.out.println(firstDigit + secondDigit);
}