Visualizzazione risultati 1 fino 5 di 5

Discussione: 3x+1 problem

  1. #1
    Guest

    Predefinito 3x+1 problem

    allora, devo fare un programmino in C che una volta inserito un numero N si comporti in questo modo

    se n è 1 non ci sono successivi;
    se n è pari il successivo è n/2;
    se n è dipari diverso da 1 il successivo è 3n+1

    io ho fatto cosi':



    #include <stdio.h>

    main(){
    int x,risultato;
    risultato = 0;
    scanf("%d", &x);
    while (x > 0) {
    if (x == 1){ printf("%d\n", risultato); break; }
    if (x = %2) { x = x/2; } else { x = 3*x + 1; }
    risultato++;

    }
    }
    il problema e' nella riga 7: in poche parole li voglio che il programma mi controlli se x e' un numero paro; in caso lo fosse, il numero deve essere dimezzato fino ad arrivare ad 1, in caso non lo fosse deve applicare la formula 3x+1 ...

    solo che non compila...

    HELP!!

  2. #2
    L'avatar di F1Italia
    F1Italia non è connesso Utente
    Data registrazione
    28-12-2003
    Messaggi
    200

    Predefinito

    bè, prova prima di tutto con scrivere:

    if (x==%2) e non if(x=%2)
    Fare facilmente ciò che gli altri trovano difficile è talento;
    fare ciò che è impossibile al talento è genio.


  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da F1Italia
    bè, prova prima di tutto con scrivere:

    if (x==%2) e non if(x=%2)
    :eyes: :eyes:

    cmq non compila gualmente

  4. #4
    L'avatar di dse
    dse
    dse non è connesso Utente
    Data registrazione
    12-08-2004
    Residenza
    A galaxy far, far away...
    Messaggi
    189

    Predefinito

    No no devi scrivere if (!(x%2)) oppure if(x%2 == 0)

    L'operatore % ti da il resto della divisione fra interi
    quindi x%2 fa zero se x è pari, uno se x è dispari




    la soluzione del tuo problema:

    http://online-judge.uva.es/problemset/data/p100.c.html

    ma non la guardare prima di averci provato fino alla follia!!!! :winkOLD:

    Double Star Entertainment HOME
    - Grafica, Musica, Giochi Freeware

    Arrakis' GeneRally Web Page - Gioca e invia i tuoi tempi migliori!
    Campionato Italiano di GeneRally - Presto la seconda edizione!

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da dse
    No no devi scrivere if (!(x%2)) oppure if(x%2 == 0)

    L'operatore % ti da il resto della divisione fra interi
    quindi x%2 fa zero se x è pari, uno se x è dispari




    la soluzione del tuo problema:

    http://online-judge.uva.es/problemset/data/p100.c.html

    ma non la guardare prima di averci provato fino alla follia!!!! :winkOLD:
    la soluzione che propone quel sito neanche mi funziona

    cmq io questi comandi volevo sapere (!(x%2)) (x%2 == 0) ...GRAZIE!!

    Passo e...CHIUDO

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •