百度2017秋招-颜色反转

xiaoxiao2021-02-28  64

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

转载请注明原文地址: https://www.6miu.com/read-70520.html

最新回复(0)