题目描述
在 Web 开发中,通常使用 16 进制 RGB 表示一个颜色。
例 如 #0000FF 表示蓝色,#FF7F50 表示珊瑚红。在这道题中,我们要求把给定的一种颜色取反,方法是把 RGB 的每个位转换成十进制 rgb,再用 255 减去,再转换成 16 进制。例如蓝色取反是黄色(#FFFF00)。
输入
请从控制台读取输入,输入不超过50行,每行包含一个16进制 RGB 表示一种颜色,保证题目中的字母均大写。
| 样例输入
#0000FF #FFFF00
|
输出
请向控制台输出你的结果,对于读取的每一行输入,输出一行格式相同的 16 进制 RGB 表示取反后的颜色,要求字母也是大写。
| 样例输出
#FFFF00 #0000FF
|
时间限制C/C++语言:1000MS其它语言:3000MS | 内存限制C/C++语言:65536KB其它语言:589824KB |
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s,out;
while(cin>>s){
if(s.at(0)!='#'){
break;
}
out ="#";
for(int i=1;i<s.length();i++){
char tmp = s.at(i);
switch(tmp){
case '0': out+='F'; break;
case '1': out+='E'; break;
case '2': out+='D'; break;
case '3': out+='C'; break;
case '4': out+='B'; break;
case '5': out+='A'; break;
case '6': out+='9'; break;
case '7': out+='8'; break;
case '8': out+='7'; break;
case '9': out+='6'; break;
case 'A':out+='5';break;
case 'B':out+='4';break;
case 'C':out+='3';break;
case 'D':out+='2';break;
case 'E':out+='1';break;
case 'F':out+='0';break;
default: break;
}
}
cout<<out<<endl;
}
return 0;
}