UVA10922:2 the 9s [JAVA]

Online Judge

Loader Loading…
EAD Logo Taking too long?

Reload Reload document
| Open Open in new tab

Download [20.52 KB]

題目概要

  • 每一行皆為一筆測資。
  • 輸入 0 則退出。
  • 判斷輸入的值是否為 9 的倍數,並且計算出 9 的 degree
    • 假設輸入的值為 9999 => 9+9+9+9 = 36 => 3+6 = 9 => 最後剩下 9 則結束,degree 為 2。

解題技巧

  • 因為測資的數值可能會很大,所以用字串來處理
  • 用字串處理使用 charAt 轉換為數字時,記得減去 48
  • 假設數字為 9 的倍數,但還沒有計算到最後 degree,記得要使用 Integer.toString() 將數字轉回字串再繼續回去處理。

程式碼

import java.util.Scanner;

public class Uva10922 {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    while (sc.hasNext()) {
      String str = sc.next();
      if (str.equals("0")) break;

      int count = 0;
      String temp = str;
      while (true) {
        int total = 0;
        for (int i = 0; i < temp.length(); i++) {
          total += temp.charAt(i) - 48;
        }

        if (total % 9 == 0) {
          count++;
          if (total == 9)
            break;
          else
            temp = Integer.toString(total);
        } else {
          break;
        }
      }

      if (count != 0)
        System.out.println(str + " is a multiple of 9 and has 9-degree " + count + ".");
      else
        System.out.println(str + " is not a multiple of 9.");
    }

  }
}
0 0 評分數
Article Rating
訂閱
通知
guest

0 Comments
在線反饋
查看所有評論