反色(顺序)C C++

发布于:2022-10-22 ⋅ 阅读:(830) ⋅ 点赞:(0)

目录

题目描述

思路分析

AC代码 C

AC代码 C++


题目描述

用三元组(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要写成%02X。

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

AC代码 C

#include<bits/stdc++.h>
using namespace std;
int main(){
    int r,g,b;
    scanf("%X%X%X",&r,&g,&b);
    printf("%02X%02X%02X",255-r,255-g,255-b);
    return 0;
}

AC代码 C++

#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;
}
本文含有隐藏内容,请 开通VIP 后查看