2016年7月7日 星期四

Q10922: 2 the 9s


https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1863

import java.util.*;

public class Main {

 public static void main(String[] args) {
  Scanner scn = new Scanner(System.in);
  while (scn.hasNext()) {
   String str = scn.next(), temp = str;
   if (str.equals("0"))
    break;

   int count = 1, tot;
   while (true) {
    tot = 0;
    String arr[] = str.split("");
    for (int i = 0; i < arr.length; i++)
     tot += Integer.parseInt(arr[i]);
    if (tot % 9 != 0 || tot / 10 == 0) {
     break;
    }
    count++;
    str = Integer.toString(tot);
   }
   if (tot % 9 != 0)
    System.out.println(temp + " is not a multiple of 9.");
   else
    System.out.printf("%s is a multiple of 9 and has 9-degree %d.\n", temp, count);
  }
 }

 /* 
    題目:Q10922: 2 the 9s
    作者:1010
    時間:西元 2016 年 7 月 */
}


困難度 
1.判斷是否為九的倍數=>每位數字加總在除以九,若整除即為九的被數,反之
2.若為九的倍數則要做9-degree
ex:輸入 999999999999999999999
999999999999999999999 → 9+9+9+...+9 = 189
189                   → 1+8+9       = 18
18                    → 1+          = 9 
9-degree=3

沒有留言:

張貼留言