给定3个字节或RGB作为输入,计算最近的CMYK值,并输出它们。
样本数据:
input output
108,174,106 [0.3793103448275862, 0.0, 0.3908045977011494, 0.3176470588235294]
0,0,0 0,0,0,1
170,255,238 33,0,7,0
0x0088ff 1,0.4667,0,0
[250,235,215] [0,6,14,1.96]
#123456 .7907,.3953,0,.6627本站拥有我能找到的最多位数的在线工具。有人知道一个提供超过4位数的工具吗?
发布于 2016-06-30 12:54:35
lambda*c:[1-i/max(c)for i in c]+[1-max(c)/255]要求输入在Python 2中浮动,非常肯定不是在3中。
发布于 2017-02-09 11:59:11
#R,G,B::((var J(max R G B))(if(!= 0 J)((list(- 1(/ R J))(- 1(/ G J))(- 1(/ B J))(- 1(/ J 255))))((list 0 0 0 1))))max接受任意数量的参数)我不太确定这是不是对的。示例数据的前两个结果是正确的,但其他结果则不正确(参见在网上试试)。
使用下面很好地描述的实现:
发布于 2016-06-30 16:22:40
#define C(x) 1-x/(j>0?j:1)
#define F float
i=0;F j;f(F r,F g,F b){j=(r>g?r:g)>b?(r>g?r:g):b;for(;i++<4;)printf("%f\n",i>1?i>2?i>3?1-j/255:C(b):C(g):C(r));}我想弄清楚怎么可能打更多的高尔夫球。
#define C(x) 1-x/(j>0?j:1)
#define F float
i=0;F j;f(F r,F g,F b){j=(r>g?r:g)>b?(r>g?r:g):b;for(;i++<4;)printf("%f\n",i>1?i>2?i>3?1-j/255:C(b):C(g):C(r));}
main(){
f(108,174,106);
}0.379310
0.000000
0.390805
0.317647https://codegolf.stackexchange.com/questions/84066
复制相似问题