Partage
  • Partager sur Facebook
  • Partager sur Twitter

python additionner 2 nombres positive

    9 juillet 2024 à 12:31:18

    Bonjour

    En python

    Comment additionner 2 nombres positives sans opérateur plus

    Veuillez m'aider s'il vous plaït

    -
    Edité par xavierdominique 9 juillet 2024 à 12:31:59

    • Partager sur Facebook
    • Partager sur Twitter
      9 juillet 2024 à 15:24:15

      Bonjour,

      Tu veux dire 2 nombres positifs ?

      Et pourquoi veux tu faire ça ?

      • Partager sur Facebook
      • Partager sur Twitter
        9 juillet 2024 à 17:41:41

        from operator import add
        
        print(add(5, 3))  # affiche 8
        • Partager sur Facebook
        • Partager sur Twitter

        Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
        La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

          9 juillet 2024 à 18:50:49

          C'est la 3ième fois que je vois ce post: sur OC, CCM, ZDS.

          Peux-tu au moins donner l'énoncé de ton problème, sinon on ne saura pas comment t'aider.

          -
          Edité par PierrotLeFou 9 juillet 2024 à 19:32:45

          • Partager sur Facebook
          • Partager sur Twitter

          Le Tout est souvent plus grand que la somme de ses parties.

            9 juillet 2024 à 23:10:34

            Pouvez-vous écrire un programme Python pour additionner deux entiers positifs sans utiliser l’opérateur plus ?

            • Partager sur Facebook
            • Partager sur Twitter
              10 juillet 2024 à 0:07:48

              Oui!

              L'énoncé n'est pas plus long que cela? Ça ne nous avance pas.

              • Partager sur Facebook
              • Partager sur Twitter

              Le Tout est souvent plus grand que la somme de ses parties.

                10 juillet 2024 à 4:04:24

                Oui avec les opérateurs bit à bit.
                • Partager sur Facebook
                • Partager sur Twitter

                Python c'est bon, mangez-en. 

                  10 juillet 2024 à 5:33:30

                  J'ai déjà le code, mais j'hésite à lui donner. Veux-il qu'on fasse son devoir à sa place?

                  https://forums.commentcamarche.net/forum/affich-38068321-additionner-2-nombres-sans-utiliser-l-operateur-plus

                  Il y a deux petites fonctions. Une utilise seulement ^ et l'autre ^ et &. Elles sont parfaitement symétriques dans le sens qu'on peut interchanger les 3 bits à volonté.

                  -
                  Edité par PierrotLeFou 10 juillet 2024 à 5:53:02

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le Tout est souvent plus grand que la somme de ses parties.

                    10 juillet 2024 à 19:06:31

                    Le sujet a été marqué comme résolu sur CCM mais le PO n'a pas donné sa solution.
                    Je vous donne donc ma solution:
                    -
                    carry = lambda a, b, c: (a&b) ^ (a&c) ^ (b&c)
                    added = lambda a, b, c: a ^ b ^ c
                    def register(n):
                        R = []
                        for _ in range(8):
                            R.append(n&1)
                            n >>= 1
                        return R
                    def numeric(T):
                        n = 0
                        for t in T:
                            n = (n<<1) | t
                        return n
                    A = register(int(input("A ")))
                    B = register(int(input("B ")))
                    c = 0
                    R = []
                    for a, b in zip(A, B):
                        R.append(added(a, b, c))
                        c = carry(a, b, c)
                    if c > 0: print("Overflow")
                    print(numeric(R[::-1]))
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Le Tout est souvent plus grand que la somme de ses parties.

                      10 juillet 2024 à 21:53:57

                      Une version récursive limitée à 999 bits
                      add = lambda a,b,c=0,n=0: a|b|c and ((a^b^c)&1)<<n | add(a>>1,b>>1,(a&b|a&c|b&c)&1,-~n)
                      
                      print(add(15,21)) # aff. 36

                      Sinon en trichant un peu 

                      def add(a,b):
                          while a:
                              b = -~b
                              a = ~-a
                          return b


                      la version recursive lève évidement un max. recursursion assez rapidement

                      add = lambda a,b : a and add(~-a,-~b) or b
                      print(add(999,1))



                      -
                      Edité par josmiley 10 juillet 2024 à 23:12:48

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Python c'est bon, mangez-en. 

                        12 juillet 2024 à 15:45:40

                        bonjour

                        Sans contexte, ce genre de question est plutôt stupide ...

                        Tu es dans un chapitre algo ? listes ... poo ?

                        Si poo alors int(5).__add__(8) fait le travail (encore heureux !)

                        liste : sum((5,5))

                        Ou le travail est de bien savoir si les 2 nombres sont positifs ?

                        -
                        Edité par papajoker 12 juillet 2024 à 15:51:38

                        • Partager sur Facebook
                        • Partager sur Twitter
                          13 juillet 2024 à 2:03:43

                          Major Tom Your circuit's dead, there's something wrong Can you hear me, Major Tom? Can you hear me, Major Tom? Can you hear me, Major Tom?

                          Le PO est parti en orbite ...

                          -
                          Edité par PierrotLeFou 13 juillet 2024 à 2:07:38

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Le Tout est souvent plus grand que la somme de ses parties.

                            19 juillet 2024 à 11:29:50

                            def add(a, b):
                                L=[1]*a
                                L.extend([1]*b)
                                return len(L)
                            
                            add(2, 3)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 juillet 2024 à 20:10:20

                              add = lambda a, b: len([1] * a + [1[ * b)

                              add(2, 3)

                              @PascalOrtiz: je viens de me rendre compte que j'ai utilisé un "+" et que tu ne le fais pas ...

                              -
                              Edité par PierrotLeFou 19 juillet 2024 à 20:18:03

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Le Tout est souvent plus grand que la somme de ses parties.

                                19 juillet 2024 à 22:25:21

                                De mon point de vue une multiplication c'est une succession d'additions, cependant ça répond à l'énoncé .

                                du coup j'ai bon ? :p

                                add = lambda a,b:-(-a-b)



                                -
                                Edité par josmiley 21 juillet 2024 à 22:56:33

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Python c'est bon, mangez-en. 

                                python additionner 2 nombres positive

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                • Editeur
                                • Markdown