Défi : recréer les opérateurs de base (+, -, *, %, ...)
Tim
-
Tim -
Tim -
Bonjour à tous !
Alors voilà, je me suis lancé le petit défis en C# (mais il peut être fait avec n'importe quel langage) :
Réaliser une classe qui permet de recréer l'ensemble des opérateurs, mais en utilisant le moins d'opérateur possibles !
Exemple pour bien me faire comprendre :
On a recréer l'opérateur + et -, mais en utilisant uniquement un seul opérateur ! (ici l'opérateur -).
La classe devra ainsi permettre de recréer tous les opérateurs suivant:
+, -, *, /, %, >, <, ~, |, &, ^, >>, <<, ==, !=, &&, ||, !
Tous les opérateur "redondant" ne sont pas nécessaire, comme :
>=, <=, +=, -=, *=, ++, --, etc...
Le seul opérateur ne comptant pas est celui d'affectation =.
Petites règles complémentaires :
Les opérateurs ne sont à recréer que pour les bool et les int, et doivent gérer les cas où ceux-ci sont négatifs.
Les opérateurs recréés doivent avoir EXACTEMENT le même comportement que s'ils étaient simplement utilisés.
L'utilisation d'une méthode externe à la classe est interdit, même avec les classe de base comme string ou int.
(Exemple, pas le droit de faire string.Concat(...))
En revanche, tous les types de bases sont autorisées (int, string, double, char, bool, etc...), ainsi que toutes les instructions (if/else, switch, for, do/while, try/catch, etc...)
Alors voilà, après un peu de temps, j'ai réussi à recréer tous les opérateurs en en utilisant qu'un seul !
(Je met une balise spoiler au cas-où vous voudriez faire l’exercice par vous même)
Ma question est donc la suivante, pensez vous qu'il est possible de réussir ce défi en utilisant un autre opérateur ?
Car j'ai essayez, mais à chaque fois, j'ai l'impression de tomber dans un cul de sac :/
Merci d'avance à tous ceux qui essayeront de répondre à la question !
Et bonne chance à ceux qui essayeront le défi ! :)
Alors voilà, je me suis lancé le petit défis en C# (mais il peut être fait avec n'importe quel langage) :
Réaliser une classe qui permet de recréer l'ensemble des opérateurs, mais en utilisant le moins d'opérateur possibles !
Exemple pour bien me faire comprendre :
public static class Operateur { public static int soutraction(int a, int b) { return a - b; } public static int addition(int a, int b) { return a - (-b); } }
On a recréer l'opérateur + et -, mais en utilisant uniquement un seul opérateur ! (ici l'opérateur -).
La classe devra ainsi permettre de recréer tous les opérateurs suivant:
+, -, *, /, %, >, <, ~, |, &, ^, >>, <<, ==, !=, &&, ||, !
Tous les opérateur "redondant" ne sont pas nécessaire, comme :
>=, <=, +=, -=, *=, ++, --, etc...
Le seul opérateur ne comptant pas est celui d'affectation =.
Petites règles complémentaires :
Les opérateurs ne sont à recréer que pour les bool et les int, et doivent gérer les cas où ceux-ci sont négatifs.
Les opérateurs recréés doivent avoir EXACTEMENT le même comportement que s'ils étaient simplement utilisés.
L'utilisation d'une méthode externe à la classe est interdit, même avec les classe de base comme string ou int.
(Exemple, pas le droit de faire string.Concat(...))
En revanche, tous les types de bases sont autorisées (int, string, double, char, bool, etc...), ainsi que toutes les instructions (if/else, switch, for, do/while, try/catch, etc...)
Alors voilà, après un peu de temps, j'ai réussi à recréer tous les opérateurs en en utilisant qu'un seul !
(Je met une balise spoiler au cas-où vous voudriez faire l’exercice par vous même)
Ma question est donc la suivante, pensez vous qu'il est possible de réussir ce défi en utilisant un autre opérateur ?
Car j'ai essayez, mais à chaque fois, j'ai l'impression de tomber dans un cul de sac :/
Merci d'avance à tous ceux qui essayeront de répondre à la question !
Et bonne chance à ceux qui essayeront le défi ! :)
A voir également:
- Défi : recréer les opérateurs de base (+, -, *, %, ...)
- Realtek high defi - Télécharger - Pilotes & Matériel
- Un vrai défi - Forum Windows
- Face à un défi de réinstallation - Forum Windows
- Le colonel - défi ricard video - Forum Réseaux sociaux
- Clé USB impossible à formater (défi pour vous) - Forum logiciel systeme
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
tu te simplifies fortement la vie en considérant que la division ne retourne que la partie entière du résultat.
je pense qu'il est utile de le préciser dans l'énoncé.
tu te simplifies fortement la vie en considérant que la division ne retourne que la partie entière du résultat.
je pense qu'il est utile de le préciser dans l'énoncé.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
1 584
par ailleurs, je pense que ta solution ne tient pas compte des différentes représentations utilisées pour les nombres signés.