2016年7月12日 星期二

ITSA 41 [Problem 1] 和絃組成音


http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=25161

import java.util.*;

public class Main {

 public static void main(String[] args) {
  Scanner scn = new Scanner(System.in);
  String str[] = { "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B", "C", "C#", "D", "D#", "E",
    "F", "F#", "G", "G#", "A", "A#", "B" };
  int n = Integer.parseInt(scn.nextLine()), count = 0, x;
  for (int i = 0; i &lt n; i++) {
   String s = scn.nextLine();
   char c[] = s.toCharArray();
   if (s.indexOf("m") &gt 0)
    count = 1;
   else
    count = 0;
   String s1[] = s.split("m");
   x = call(s1);
   if (count == 1)
    System.out.println(str[x] + " " + str[x + 3] + " " + str[x + 4 + 3]);
   else
    System.out.println(str[x] + " " + str[x + 4] + " " + str[x + 4 + 3]);
  }
 }

 public static int call(String[] s) {
  int x = 0;
  if (s[0].equals("C"))
   x = 0;
  else if (s[0].equals("C#"))
   x = 1;
  else if (s[0].equals("D"))
   x = 2;
  else if (s[0].equals("D#"))
   x = 3;
  else if (s[0].equals("E"))
   x = 4;
  else if (s[0].equals("F"))
   x = 5;
  else if (s[0].equals("F#"))
   x = 6;
  else if (s[0].equals("G"))
   x = 7;
  else if (s[0].equals("G#"))
   x = 8;
  else if (s[0].equals("A"))
   x = 9;
  else if (s[0].equals("A#"))
   x = 10;
  else if (s[0].equals("B"))
   x = 11;
  return x;
 }
 /* 
    題目:[Problem 1] 和絃組成音
    作者:1010
    時間:西元 2016 年 7 月 */
}


這題用s.indexOf("m")>0判斷輸入字串裡面是否有m,然後進入call()判斷是在第幾個開始

沒有留言:

張貼留言