[C] da moltiplicazione ad addizione

di il
7 risposte

[C] da moltiplicazione ad addizione

Ciao ragazzi, come posso fare per ricavare da una moltiplicazione l'equivalente di un'addizione?

es :

5*3 = 5 + 5 + 5

7 Risposte

  • Re: [C] da moltiplicazione ad addizione

    Con un semplice ciclo for
  • Re: [C] da moltiplicazione ad addizione

    Mi faresti un esempio ? grazie
  • Re: [C] da moltiplicazione ad addizione

    Se ti faccio l'esempio e come se te lo facessi io, te lo spiego a parole poi tu lo trasformi in codice.
    Nel tuo esempio 5*3 e come fare 5+5+5, un ciclo è un espressione che si ripete fin quando una certa condizione è verificata, esempio num1=5 e num2=3 il ciclo dovrà ripetersi 3 volte e nel corpo devi sommare una variabile somma+=num1, sai come funziona il ciclo for?
  • Re: [C] da moltiplicazione ad addizione

    Grazie sei gentilissimo, ma voelvo sapere come posso stampare a console il risultato formattato in questa maniera:

    5*3 = 5 + 5 + 5
    
        int num1, num2, i;
        int som = 0;
        scanf("%d" "%d", &num1, &num2);
    
        for (i=0; i<=num2 -1; i++) {
            som+=num1;
            }
        printf("%d", som);
    
    ho il valore 15 ad esempio

    ma per avere ad esempio un printf("%d equivalente in addizione :", ..... ); (5 + 5 + 5)

    grazie ancora !
  • Re: [C] da moltiplicazione ad addizione

    Printf("stampa %d", num1+num1+num1); oppure puoi usare una funzione e chiamarla poi nella printf
  • Re: [C] da moltiplicazione ad addizione

    Come prima cosa esegui l'input di moltiplicando e moltiplicatore. Ad esempio, in 7 * 4 il moltiplicando è 7 e il moltiplicatore è 4.

    Osserva bene l'espressione equivalente: 7 + 7 + 7 + 7
    Nell'espressione compare quattro volte il moltiplicando (tante quanto il moltiplicatore!) e tre segni + (cioè tanti quanto il moltiplicatore diminuito di uno). Cosa ti suggerisce questo?

    A monte del loop principale, una volta sola, stamperai a parte il solo moltiplicando, perché in ogni operazione algebrica binaria il numero dei segni è inferiore di una unità rispetto al numero dei fattori. Devi quindi creare un loop con un numero di iterazioni pari al valore del moltiplicatore diminuito di una unità. Nel loop non farai altro che stampare un segno + seguito dal moltiplicando.

    Quindi, per esemplificare, si avrà:
    
        printf("%d", num1);
        for (i = 1; i < num2; ++i)
        {
            printf(" + %d", num1);
        }
    


    Si noti che l'idioma funziona perfettamente anche quando il moltiplicatore è pari a uno.

    Equivalentemente, si può stampare nel loop printf("%d + ", num1) e in seguito stampare fuori dal loop l'ultimo moltiplicando... nulla cambia, se non l'ordine dei simboli nella printf() e la posizione della printf() isolata, rispettivamente a monte e a valle del loop.
  • Re: [C] da moltiplicazione ad addizione

    Grazie tante M.A.W. 1968
Devi accedere o registrarti per scrivere nel forum
7 risposte