百度2017秋招-颜色反转

来源:互联网 发布:软件缓存是什么意思 编辑:程序博客网 时间:2024/05/29 19:59

题目大意:给出颜色的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();}}

0 0