颜色反转(百度2017秋招真题)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tinyDolphin/article/details/79426539

颜色反转(百度2017秋招真题)

题目描述

在 Web 开发中,通常使用 16 进制 RGB 表示一个颜色。

例 如 #0000FF 表示蓝色,#FF7F50 表示珊瑚红。在这道题中,我们要求把给定的一种颜色取反,方法是把 RGB 的每个位转换成十进制 rgb,再用 255 减去,再转换成 16 进制。例如蓝色取反是黄色(#FFFF00)。

输入

请从控制台读取输入,输入不超过50行,每行包含一个16进制 RGB 表示一种颜色,保证题目中的字母均大写。

输出

请向控制台输出你的结果,对于读取的每一行输入,输出一行格式相同的 16 进制 RGB 表示取反后的颜色,要求字母也是大写。

样例输入

0000FF

FFFF00

样例输出

FFFF00

0000FF

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {

    private static String reverseColor(String str) {
        String result = "";
        int len = str.length();
        for (int i = 1; i < len; i++) {
            char tmp = str.charAt(i);
            switch(tmp){
                case '0': result+='F'; break;
                case '1': result+='E'; break;
                case '2': result+='D'; break;
                case '3': result+='C'; break;
                case '4': result+='B'; break;
                case '5': result+='A'; break;
                case '6':
                case '7':
                case '8':
                case '9': result+=(15-(tmp-'0')); break;
                case 'A':result+='5';break;
                case 'B':result+='4';break;
                case 'C':result+='3';break;
                case 'D':result+='2';break;
                case 'E':result+='1';break;
                case 'F':result+='0';break;
                default: break;
            }
        }
        return result;
    }

    public static void main(String[] args) throws IOException {
        Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
        String str;
        while (in.hasNext()) {
            str = in.next();
            out.println("#"+reverseColor(str));
        }
        out.flush();
    }
}

猜你喜欢

转载自blog.csdn.net/tinyDolphin/article/details/79426539