您好,我正在尝试编写一个程序,该程序将从用户那里收到一个号码
如果它是偶数(例如9728,程序会将其更改为7982)

如果它是一个奇数(例如1234567程序会将其更改为1325476,则剩下的数字将保持不变)

由于某些原因,只有第二种选择有效。谢谢你的帮助

int firstnumber, mull = 1, sum = 0, i = 0;
int rightDigit;
System.out.println("Please enter a number");

firstnumber = s.nextInt();

while (firstnumber != 0) {
    rightDigit=firstnumber%10;
    rightDigit*=mull;

    if((firstnumber > 9) && (i%2==0)){
        rightDigit*=10;
    }
    else if ((firstnumber > 9) && (i%2!=0)){
        rightDigit/=10;
    }

    sum+=rightDigit;
    mull*=10;
    firstnumber/=10;
    i++;
}
System.out.println("Your number is " + sum);

最佳答案

当您有偶数个数字时,程序会将最后一个数字弄乱。尝试从else子句中取出firstnumber> 9:

else if (i%2!=0){
    rightDigit/=10;
}

07-24 19:50