7 votes

Toutes les valeurs possibles de int, de la plus petite à la plus grande, en utilisant Java

Écrire un programme pour imprimer toutes les valeurs possibles du type de données int, de la plus petite à la plus grande, en utilisant Java.

Quelques solutions notables au 8 mai 2009, 10:44 GMT :

1) Daniel Lew a été le premier à poster code fonctionnant correctement .

2) Kris a fourni la solution la plus simple pour le problème donné.

3) Tom Hawtin - tackline, est venu sans doute avec la solution la plus élégante .

4) mmyers a souligné que l'impression est susceptible de devenir un goulot d'étranglement et qu'il est nécessaire d'améliorer la qualité de l'impression. peut être améliorée par la mise en place de tampons .

5) Jay's approche par force brute est remarquable car, outre le fait qu'il défie le principe même de la programmation, le code source qui en résulte prend environ 128 Go et dépasse les limites des compilateurs.

Par ailleurs, je pense que les réponses montrent que cela pourrait être une bonne question d'entretien, tant que l'accent n'est pas mis sur la capacité à se souvenir de futilités sur le débordement du type de données et ses implications (qui peuvent être facilement repérées pendant les tests unitaires), ou sur la façon d'obtenir les limites MAX et MIN (qui peuvent être facilement recherchées dans la documentation), mais plutôt sur l'analyse des différentes façons de traiter le problème.

1voto

Apocalisp Points 22526

Le paquet fj est de ici .

import static fj.pre.Show.intShow;
import static fj.pre.Show.unlineShow;
import static fj.data.Stream.range;
import static java.lang.Integer.MIN_VALUE;
import static java.lang.Integer.MAX_VALUE;

public class ShowInts
  {public static void main(final String[] args)
     {unlineShow(intShow).println(range(MIN_VALUE, MAX_VALUE + 1L));}}

0voto

Steve B. Points 23227

À 1000 lignes/seconde, vous aurez terminé en 7 semaines environ. On va prendre un café maintenant ?

0voto

ATorras Points 2082

Il suffit d'améliorer la StringBuilder L'approche de la Commission européenne est un peu différente :

2 threads + 2 buffers (c'est-à-dire StringBuilder ) : L'idée principale est qu'un thread remplit une mémoire tampon tandis que l'autre thread vide le contenu de l'autre mémoire tampon.

Évidemment, le fil "dumper" sera toujours fonctionnent plus lentement que le fil de remplissage.

0voto

Saurabh Tiwari Points 1265

Si l'interviewer cherchait toutes les valeurs entières possibles en Java, vous pourriez essayer de lui donner une solution en utilisant Long :

class AllIntegers{
    public static void main(String[] args) {
        for (int i = Integer.MIN_VALUE; i < Long.MAX_VALUE; i++) {
            System.out.println(i);
        }
        System.out.println(Long.MAX_VALUE);
    }
}

Cela devrait permettre d'obtenir une plage allant de -9223372036854775808 à 9223372036854775807, ce qui est bien plus que ce que vous obtiendriez en utilisant Integer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X