您的位置 首页 kreess

Java要求輸1234,返4321,鍵盤輸入放在main中。

遇到Java老師給出的一個問題,題目要求是:封裝一個函數,有一個輸入參數,一個返回值。要求輸入12345,返回54321;輸入1357911,返回1197531;輸入246

遇到Java老師給出的一個問題,題目要求是:

  1. 封裝一個函數,有一個輸入參數,一個返回值。
  2. 要求輸入12345,返回54321;輸入1357911,返回1197531;輸入2468,返回2468。
  3. 不允許在函數內部編寫鍵盤輸入語句,鍵盤輸入語句可以放在main中完成。
  4. 函數的外殼如下,請編程實現。public static int change(int number) {}

我是個Java新手,沒有例外的話,每天都要學習一些Java的知識,差不多每天我們的任課老師,都會給我們現階段一個相對比較難一點的思考題,做瞭幾個月,發現自己不是很能學好Java中的一些機制,於是開始分享我自己對一些Java題目的理解和解法。

對於這個題目,我的代碼是這樣的:

package day207;

import java.util.Scanner;

public class invertedOrderNumber {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("請輸入任意長度的一個整數: ");
int number = input.nextInt();
System.out.println("反轉後為: " + change(number));
input.close();
}

public static int change(int number) {
int sum = 0; // 用來接收經過處理後的結果
int len = 0; // 記錄輸入十進制數字的位數(長度)
int temp = number;// 不影響number的值,使用number的值來計算長度(位數)
do {
temp = temp / 10;
len++;
} while (temp > 0);
int[] arr = new int[len];// 用來存儲number的每個權位的權值
for (int i = 0; i < len; i++) {
arr[i] = number % 10;
number = number / 10;
}
for (int i = 0; i < arr.length; i++) {// 處理數組,組合成反轉數
for (int j = arr.length - 1; j > i; j--) {
arr[i] = arr[i] * 10;
}
sum += arr[i];
}
return sum;
}
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部