反色(顺序)C C++

2023-07-30 11:47:42 浏览数 (1)

题目描述

用三元组(r,g,b)表示RBG颜色值的一种颜色,其中r、g、b分别为该颜色的R 值、G 值、B 值,0≤r,g,b≤255且皆为十进制整数。

对于颜色(r,g,b),定义其反色的 RGB 颜色值为(255-r,255-g,255-b)。

r、g、b常用两位十六进制表示(00~FF)。输入r、g、b的十六进制表示,输出其反色的十六进制颜色码。

例如:白色的RGB值为(255,255,255),其反色为黑色,RGB值为(0,0,0)。255的十六进制为FF。因此输入FF FF FF,输出000000。

输入

三个两位十六进制,分别表示r,g,b颜色值。输入数据保证是合法的颜色值。

输出

三个两位十六进制,分别是反色的r,g,b值

输入样例1 

FF FF FF

输出样例1

000000

输入样例2 

EB A9 32

输出样例2

1456CD

思路分析

题目没有任何的技巧,纯语法基础题。

C语言的十六进制以%X读进来,大写的是大写的X,小写的是%x。

输出去也是大写的就%X,小写的就%x,位宽要写成%2X,补0要写成X。

C 的十六进制读进来要hex,输出去也要hex,控制大写要写成 setiosflags(ios::uppercase),默认小写输出,位宽要写成setw(2),但是只是有效后一个输出,所以每一个输出前面都要写,补0要写成setfill(‘0’),这个设计一次就可以了,默认补空格。

AC代码 C

代码语言:javascript复制
#include<bits/stdc  .h>
using namespace std;
int main(){
    int r,g,b;
    scanf("%X%X%X",&r,&g,&b);
    printf("XXX",255-r,255-g,255-b);
    return 0;
}

AC代码 C

代码语言:javascript复制
#include<bits/stdc  .h>
using namespace std;
int main(){
    int r,g,b;
    cin>>hex>>r>>g>>b;
    cout<<setiosflags(ios::uppercase)<<setfill('0')<<hex<<setw(2)<<255-r<<setw(2)<<255-g<<setw(2)<<255-b<<endl;
    return 0;
}

0 人点赞