2014-10-28 59 views
-1

你能告诉我怎样才能修复这个程序,使“sumSecTolastD”操作符执行以下操作:
1-将第二个数字与一个整数中的最后一位数字相加(例如:324 + 564 + 9876 = (2 + 4)+(6 + 4)+(8 + 7 + 6)= 29)。
2-如果我只插入一个数字,它仍然能够给我总和(例如:1 + 3 + 4 = 8)。如何将第二位数字加到java中整数的最后一位数字上?

import java.util.*; 
 
public class Pr66{ 
 
     public static void main(String[] args){ 
 
     Scanner scan = new Scanner (System.in); 
 
     int num1; 
 
     int num2; 
 
     int num3; 
 
     int sumLastD; 
 
     int sumSecTolastD; 
 

 
     System.out.print("Please write an integer: "); 
 
     num1 = scan.nextInt(); 
 

 
     System.out.print("Please write an integer: "); 
 
     num2 = scan.nextInt(); 
 

 
     System.out.print("Please write an integer: "); 
 
     num3 = scan.nextInt(); 
 

 
     sumLastD = num1 % 10 + num2 % 10 + num3 % 10; 
 
     System.out.println(); 
 
     System.out.println("- LastDigitSum: " + num1 % 10 + " + " + num2 % 10 + " + " + num3 % 10 + " = " + sumLastD); 
 
     
 
     if (sumLastD % 2 == 0) 
 
     System.out.println("- LastDigitSum: is an even integer"); 
 
     else 
 
     System.out.println("- LastDigitSum: is an odd integer"); 
 

 
     System.out.println(); 
 

 
     sumSecTolastD = (num1/10) % 10 + (num2/10) % 10 + (num3/10) % 10; 
 
     System.out.println("- SecToLastSum: " + (num1/10) % 10 + " + " + (num2/10) % 10 + " + " + (num3/10) % 10 + " = " + sumSecTolastD); 
 
       
 
     if (sumSecTolastD % 2 == 0) 
 
     System.out.println("- SecToLastSum: is an even integer"); 
 
     else 
 
     \t System.out.println("- SecToLastSum: is an odd integer"); 
 
     
 
     }//main 
 
}//Pr66

+0

的可能重复[总结第二到最后关于java](http://stackoverflow.com/questions/26599609/sum-the-second-to-在-最后上的Java) – 2014-10-28 05:31:25

回答

0

抱歉不便。我的问题被误解了。我的意思是我想编写一个代码来查找三个不同整数的第二位数字和最后一位数字的总和。例如:如果用户输入15,34和941,在这种情况下,第二位到最后一位将是1,3和4.因此,它们的小计将是1 + 3 + 4 = 8.

我找到了答案,我想与大家分享,并且我想感谢所有尝试提供帮助的人。谢谢你..

import java.util.*; 
 
public class Pr6{ 
 
    public static void main(String[] args){ 
 
    Scanner scan = new Scanner (System.in); 
 
    int num1; 
 
    int num2; 
 
    int num3; 
 
    int sumSecToLast; 
 
    
 
    System.out.print("Please write an integer: "); 
 
    num1 = scan.nextInt(); 
 
    System.out.print("Please write an integer: "); 
 
    num2 = scan.nextInt(); 
 
    System.out.print("Please write an integer: "); 
 
    num3 = scan.nextInt(); 
 
    
 
    sumSecToLast = ((num1/10) % 10) + ((num2/10) % 10) + ((num3/10) % 10); 
 
    System.out.println("The subtotal of the 2nd to the last digit = " + sumSecToLast); 
 
    
 
    if (sumSecToLast % 2 == 0) 
 
     System.out.println(sumSecToLast + " is an even number."); 
 
    else 
 
     System.out.println(sumSecToLast + " is an odd number."); 
 
    
 
    }//main 
 
}//Pr6

0

此总结只有倒数第二位:

sumSecTolastD = (num1/10) % 10 + (num2/10) % 10 + (num3/10) % 10; 

为了资金都倒数第二个和最后一个数字,将其更改为:

sumSecTolastD = num1%10 + (num1/10) % 10 + num2%10 + (num2/10) % 10 + num3%10 + (num3/10) % 10; 

即使任何/所有的输入数字都有歌曲,相同的代码也可以工作因为在那种情况下,(numi/10) % 10将是0,并且不会影响总和。

0

这总结过去的数字:

sumLastD = num1 % 10 + num2 % 10 + num3 % 10; 

得到最后和第二的总和持续,上述的结果添加到您的计算倒数第二位:

sumSecTolastD = (num1/10) % 10 + (num2/10) % 10 + (num3/10) % 10 + sumLastD; 

,使其与只有个位数的工作,以及将需要额外的检查,并让你的代码要大得多:

sumLastD = (String.valueOf(num1).length() > 1 ? num1 % 10 : num1) + 
(String.valueOf(num2).length() > 1 ? num2 % 10 : num2) + 
(String.valueOf(num3).length() > 1 ? num3 % 10 : num3); 

是的,你可以把它放在多行上,编译器会忽略不必要的空格。

对于sumSecTolastD修改上面到:

sumSecTolastD = (String.valueOf(num1).length() > 2 ? (num1/10) % 10 : num1) + 
(String.valueOf(num2).length() > 2 ? (num2/10) % 10 : num2) + 
(String.valueOf(num3).length() > 2 ? (num3/10) % 10 : num3) + sumLastD; 
相关问题