2016-05-27 8 views
-3

逆順プログラムを作成しましたが、このプログラムが正しく動作しているかどうかを確認する必要があります。 if/else文は何が欠けていますか?Java逆戻りチェックプログラム

import java.util.*; 

public class IT145_Homework_7_3 { 

    public static void main(String[] args) { 

     Scanner scanner = new Scanner(System.in); 

     // input int parameter 
     System.out.print("Enter number to reverse: "); 

     //sets variables 
     int original = scanner.nextInt(); 
     int reverse = 0; 
     int remainder; 

     //original number equals 542 
     while (original != 0) { 

      remainder = original % 10; //2 //4 //5 
      reverse = reverse * 10 + remainder; //2 //24 //245 
      original = original/10; //54 //5 //0 
     } 
     //Prints out numbers in Reverse 
     System.out.println("Reverse of number is: " + reverse); 
    } 

} 
+1

まずとして行うことができますか? '9'または' 009'?第二に、** what ** 'if-else'ステートメント? –

答えて

0

ここでチェックを行う方法の1つですが、元のものを変更する前に、元のint値を保持する必要があります。最初のコードはバグがありました:私はEDIToriginalInt

// sets variables 
int original = scanner.nextInt(); 
int originalInt = original; // Save it off here 

// all of your code to run the reverse... 

// Code to run the check... 
String revStr = String.valueOf(reverse); 
String orgStr = String.valueOf(originalInt); 

// In case you are inputting negative ints 
orgStr = orgStr.replace("-", ""); 
revStr = revStr.replace("-", ""); 

// remove all trailing zeros from original and check if they are equal 
// This is for the cases where the input is '900' and your reverse is '9' 
orgStr = orgStr.replaceAll("0*$", ""); 

boolean worked = true; 

// if the lengths are equal, then check if the chars match in opposite directions. 
if (revStr.length() == orgStr.length()) 
{ 
    int len = orgStr.length(); 
    for (int i = 0; i < len; i++) 
    { 
     if (orgStr.charAt(i) != revStr.charAt(len - (i+1))) 
     { 
      worked = false; 
      break; 
     } 
    } 
} 
else 
{ 
    worked = false; 
} 

System.out.println("Worked: " + worked); 

それを呼びました。

0

それはまた `900`を反転させるための正しい結果は何である、

int no=scanner.nextInt(); 
StringBuffer sb= new StringBuffer(no+""); 
System.out.println(Integer.parseInt(new String(sb.reverse()))); 
+0

OPはintを逆にする方法を尋ねていないので、アルゴリズムの検証方法を尋ねています。 –

関連する問題