2016-05-27 2 views
-3

Я написал программу обратных цифр, но вам нужно проверить эту программу, чтобы убедиться, что она работает правильно. Что мне не хватает в выражении if/else?Программа проверки Java Reversedigit

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

Во-первых, то, что правильный результат для реверсирования '900'? '9' или' 009'? Во-вторых, ** что ** 'if-else' заявление? –

ответ

0

Вот один из способов сделать проверку, но вы должны сохранить int оригинала, прежде чем изменять оригинал. Я назвал его originalInt

// 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); 

EDIT: Первый код был ошибка.

0

он также может быть сделано как

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

OP не спрашивает, как обратить вспять int, они спрашивают, как проверить алгоритм. –

Смежные вопросы