Convertisseur RVB vers CMJN en Java sans importation


J'ai la tâche d'écrire un convertisseur rvb en cmjn très facile en java et mes tentatives ne fonctionnent pas. Chercher des solutions n'a pas aidé, car tout le monde utilise des bibliothèques et des importations que je ne peux pas utiliser ici. J'espère que quelqu'un voit mon erreur.

int w;
    int c;
    int m;
    int y;
    int k;

    if (r+b+g==0) {
        System.out.println("Ist alles 0");
    } else {
        int max =  Math.max(Math.max(r,b),g);
        w = (max / 255);

        r = r/255;
        g = g/255;
        b = b/255;

        c = ((w-r)/w);
        m = ((w-g)/w);
        y = ((w-b)/w);
        k = 1-w;
        System.out.println(c+" "+m+" "+y+" "+k);
    }

C'est la partie où j'essaie de convertir les valeurs r, g et b (int) que j'obtiens via l'entrée utilisateur en cmjn.

Edit: Je sais qu'il y a des articles comme ceux-ci, mais les solutions incluent toujours des bibliothèques et des importations que je NE suis PAS autorisé à utiliser.

Author: Kendel Ventonda, 2016-11-01

1 answers

Le code ci-dessous stockera zéro dans r car la valeur initiale de r est inférieure à 255 et r est un int. Donc, selon la division entière r/255 sera zéro.

r = r/255;

Au lieu de cela, vous pouvez stocker le résultat de la division dans une variable double, essayez ce qui suit (assurez-vous qu'au moins un des opérandes de la division est un double, sinon vous pouvez le convertir en double)

double rC = r/255.0;
c = ((w-rC)/w);
 1
Author: Jos Angel George, 2016-11-01 16:01:51