题目大意:给出颜色的RGB,然后将对应的数字转换为16个数的相对应的数字。比如0-F,1-E,F-0,E-1等。
package 百度;
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @题目要求:例 如 #0000FF 表示蓝色,#FF7F50 表示珊瑚红。在这道题中,我们要求把给定的一种颜色取反,
* 方法是把 RGB 的每个位转换成十进制 rgb,再用 255 减去,再转换成 16 进制。例如蓝色取反是黄色(#FFFF00)。
*
* @输入:请从控制台读取输入,输入不超过50行,每行包含一个16进制 RGB 表示一种颜色,保证题目中的字母均大写
* @输出:请向控制台输出你的结果,对于读取的每一行输入,输出一行格式相同的 16 进制 RGB 表示取反后的颜色,要求字母也是大写。
*
* @测试输入:
* #0000FF
* #FFFF00
* @测试输出:
* #FFFF00
* #0000FF
*
* @author 崔洪振367
* @version 创建时间:2017年4月22日 下午7:06:23
*/
public class Q2017秋招_颜色反转 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<String> list = new ArrayList<>();
while (scanner.hasNext()) {
String string = scanner.next();
char[] cs = string.toCharArray();
StringBuffer sb = new StringBuffer();
for (char c : cs) {
switch (c) {
case '#':
sb.append("#");
break;
case '0':
sb.append("F");
break;
case '1':
sb.append("E");
break;
case '2':
sb.append("D");
break;
case '3':
sb.append("C");
break;
case '4':
sb.append("B");
break;
case '5':
sb.append("A");
break;
case '6':
sb.append("9");
break;
case '7':
sb.append("8");
break;
case '8':
sb.append("7");
break;
case '9':
sb.append("6");
break;
case 'A':
sb.append("5");
break;
case 'B':
sb.append("4");
break;
case 'C':
sb.append("3");
break;
case 'D':
sb.append("2");
break;
case 'E':
sb.append("1");
break;
case 'F':
sb.append("0");
break;
default:
break;
}
}
System.out.println(sb);
}
scanner.close();
}
}