ZOJ1067-Color Me Less

#include <stdio.h>
#include <math.h>

struct stdcolor
{
    int R;
    int G;
    int B;
};

stdcolor col[16];

double distance(stdcolor c, stdcolor co)
{
    double dis;
    dis = pow(c.R - co.R, 2) + pow(c.G - co.G, 2) + pow(c.B - co.B, 2);
    dis = sqrt(dis);
    
    return dis;
}

int main()
{
    stdcolor c;
    double s1, s;
    int t;
    
    for (int i = 0; i < 16; i++) {
        scanf("%d%d%d", &col[i].R, &col[i].G, &col[i].B);
    }
    
    while (scanf("%d%d%d", &c.R, &c.G, &c.B) == 3 && c.R != -1 && c.G != -1 && c.B != -1) {
        s = distance(c, col[0]);
        t = 0;
        for (int i = 1; i < 16; i++) {
            s1 = distance(c, col[i]);
            if (s1 < s) {
                t = i;
                s = s1;
            }
        }
        printf("(%d,%d,%d) maps to (%d,%d,%d)\n", c.R, c.G, c.B, col[t].R, col[t].G, col[t].B);
    }
    
    return 0;
}
有16种RGB的标准颜色,输入不同的颜色,求出与该颜色最接近的标准颜色。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值