反色(顺序)C C++

52 篇文章 10 订阅
这篇博客介绍了如何处理RGB颜色值及其反色,通过输入三位两位十六进制的RGB颜色,计算并输出其反色的十六进制颜色码。示例包括将FFFFFF转换为000000(白色到黑色)和EBA932转换为1456CD。文章提供了C和C++两种语言的AC代码实现,涉及颜色的十六进制表示和转换操作。
摘要由CSDN通过智能技术生成

目录

题目描述

思路分析

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MaolinYe(叶茂林)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值