Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Media Artimetica Senza Utilizzo Di Moltiplicazioni E Divisioni

    Questo è un problema ch mi tormenta da qualche giorno

    Ho due variabili: a = 5 b = 20

    Devo inserire in a: a + b
    e in b: la media di a + b

    Come posso farlo senza utilizzare moltiplicazioni e divisioni e soprattutto senza utilizzare altre variabili?

    So che si può fare però come???:master: :master:

  2. #2
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    un assegnamento diretto :tongue:

  3. #3
    Se hai solo 2 variabili e ti interessa solo la media intera, senza decimali puoi usare lo spostamento a destra di un bit al posto della divisione per 2 (operatore >> )

    Esempio:

    codice:
    int a = 5;
    int b = 20;
    
    a = a + b;
    b = a >> 1;
    L'operatore >> esiste in java ma penso si usi lo stesso simbolo anche negli altri linguaggi.
    S.O. : Ubuntu 5.04
    Lang : J2*E,PHP,tcl/tk

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,307
    Originariamente inviato da battlehorse
    L'operatore >> esiste in java ma penso si usi lo stesso simbolo anche negli altri linguaggi.
    Si usa anche in C++ (e molto probabilmente anche in C, ma non ne sono sicuro)


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Posso usare solo addizioni e sottrazioni
    L’erezione è iniziata dal sistema nervoso, che provoca un afflusso di sangue nel pene. I tessuti comprimono le vene, diminuendo il ritorno del sangue. Il fumo diminuisce la circolazione sanguigna. I disturbi sono l’impossibilità di produrre un’erezione e problemi a mantenerla abbastanza a lungo. Fumare fa male.

  6. #6

    Ricorsione

    Si può fare la divisione tramite differenze
    codice:
    public int divisione(int dividendo, int divisore){
               int risultato=0
                    while (dividendo > 1){
                    dividendo -= divisore // che equivale a dividendo=dividendo-divisore;
                    risultato++;
                     }
                return risultato;
    }
    questo funziona solo con divisioni per 2 e torna solo numeri interi...

    5/2 = 2
    6/2 = 3
    cmq è l' unico modo usando solo addizioni e sottrazioni...

    se ti serve anche per divisioni con divisore diverso da 2 posta che ti scrivo come fare... CIAO



    CIAO
    Powered by MacOSX Lion

  7. #7

    MEDIA

    dimenticavo

    media = divisione(a+b,2);

    Powered by MacOSX Lion

  8. #8
    a questo c'ero arrivato anch'io:

    applicando quello che mi hai detto:
    Codice PHP:
    5;
    11;
    b
    0;

    while (
    1){
     
    -= 2;
     
    b++;
    }

    for (
    x=1x<=bx++) {
     
    += 2;

    In questo modo alla fine del programma ho quello che volevo cioè:

    a = 16 (la somma a+b)
    b = 8 (la media di a+b)

    però è stata utilizzata una terza variabile X.

    Come fare per non utilizzare quest'altra variabile?

    In pratica devo lavorare su due variabili per avere in una un valore e nell'altra la metà della prima senza utilizzare altre variabili, moltiplicazioni,divisioni e qualsiasi altro operatore (radice quadrata, log,sin,cos, ecc..)
    L’erezione è iniziata dal sistema nervoso, che provoca un afflusso di sangue nel pene. I tessuti comprimono le vene, diminuendo il ritorno del sangue. Il fumo diminuisce la circolazione sanguigna. I disturbi sono l’impossibilità di produrre un’erezione e problemi a mantenerla abbastanza a lungo. Fumare fa male.

  9. #9

    a

    Originariamente inviato da projay2

    Codice PHP:

    5;
    11;
    b
    0;

    while (
    1){
     
    -= 2;
     
    b++;
    }
      
    for (
    x=1x<=bx++) {
     
    += 2;


    codice:
    if (a==0){
      a = b;
      a+=a;
    }else{
      a = b;
      a+=a;
      a+=1;
    }
    elimina il tuo for e metti al suo posto questo, alla fine a conterrà la somma di a e b iniziale... proprio come la volevi...

    CIAO

    Powered by MacOSX Lion

  10. #10
    Ti Funzia?
    Ciao
    Powered by MacOSX Lion

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.