前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >反色(顺序)C C++

反色(顺序)C C++

作者头像
叶茂林
发布2023-07-30 11:47:42
2840
发布2023-07-30 11:47:42
举报
文章被收录于专栏:叶子的开发者社区

题目描述

用三元组(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

代码语言:javascript
复制
#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++

代码语言: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;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 思路分析
  • AC代码 C
  • AC代码 C++
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档