2014-10-27 52 views
-1
import java.util.*;  
public class LNFI_LNFI_program2 {  
static int globnum;  
static Scanner console = new Scanner (System.in);  
public static void main(String[] args) {  
    int globnum2 = globnum;  
    getnum();  
    encrypt(globnum2);  
} 

// encrypt methods  
public static int encrypt(int num)  
{  
    num = globnum;  
    int firstDigit, secondDigit, thirdDigit, fourthDigit, temp;  
    firstDigit = num/1000 % 10;  
     secondDigit = num/100 % 10;  
     thirdDigit = num/10 % 10;  
     fourthDigit = num % 10;  
     firstDigit = (firstDigit + 7) % 10;  
     secondDigit = (secondDigit + 7) % 10;  
     thirdDigit = (thirdDigit + 7) %10; 
     fourthDigit = (fourthDigit + 7) % 10;  
     temp = firstDigit;  
     firstDigit = thirdDigit;  
     thirdDigit = temp;  
     temp = secondDigit;  
     secondDigit = fourthDigit;  
     fourthDigit = temp;    
     System.out.printf("the encrypted number is %d%d%d%d\n",  
       firstDigit, secondDigit, thirdDigit, fourthDigit);    
    return num;  
}  

// getnum  
public static int getnum()  
    {  
     int numentered;   
     System.out.println("Please enter a number");  
     numentered = console.nextInt();   
     return numentered;  
    }  
} 

這是返回值,我收到我收到了錯誤的整數。而不是7777我應該得到0189

請輸入號碼
加密的數字是7777

回答

0

你覆蓋傳遞給您的encrypt方法的號碼:

num = globnum;

globnum默認爲0。

當然,即使您沒有覆蓋它,也會將相同的0傳遞給encrypt方法。

您從不使用getnum()方法的輸出。

因此0進行加密,以7777

更改你主要到:

public static void main(String[] args) {  
    encrypt(getnum());  
} 

和除去的encrypt的第一行。

相關問題