---++ Homework (compito per casa) 1 ---++ 3x+1 problem Vedi anche: DomandeHomework104, SoluzioneHomework104, RisultatiHomework104 ---- %TOC% ---- ---+++ Descrizione Preso un qualsiasi numero naturale strettamente positivo n, definiamo il *successivo di n* come segue: * se *n è 1* non ci sono successivi; * se *n è pari* il successivo è n/2; * se *n è dipari diverso da 1* il successivo è *3n---+1* Nessuno ha mai dimostrato che partendo da un qualsiasi numero naturale la sequenza generate con le regole sopradescritte è finita, raggiungendo il numero 1, tuttavia, c'è una forte congettura che questo sia questo il caso, anche perché ciò è stato sperimentalmente dimostrato per numeri anche molto grandi. Chi fosse curioso di conoscere lo stato dell'arte di questa congettura e i problemi collegati può consultare il sito: http://personal.computrain.nl/eric/wondrous/ Voi dovrete semplicemente scrivere un programma che prende in input un numero intero e scrive in output *il numero di passi* necessari affinchè la sequenza che comincia con quel numero raggiunga il numero 1. Ad esempio, la sequenza che comincia con 3, prosegue con 10, 5, 16, 8, 4, 2, 1: quindi ricevendo in input 3, il programma deve stampare 7. Se l'input fosse 1, il programma deve stampare 0. Ecco una tabella che potrebbe esservi utile per testare il programma: <pre style='background:lightgrey'> 1 0 2 1 3 7 4 2 5 5 6 8 7 16 8 3 9 19 10 6 11 14 12 9 13 9 14 17 15 17 16 4 17 12 18 20 19 20 20 7 </pre> ---++++ Input Il vostro programma riceve in input semplicemente un numero intero; ---++++ Output Il vostro programma deve stampare un numero intero che rappresenta il numero di passi in cui la successione si ferma su 1, usando un'istruzione del tipo: <pre style='background:lightgrey'> printf("%d\n",passi); </pre> __%RED%Attenzione%FINE%__ NON producete nessuna altra scritta oltre i numeri, altrimenti il test automatico del vostro programma fallirà miseramente! :-( ---+++ Come compilare ed eseguire il programma * usate un editor per scrivere il testo del programma e salvatelo in formato *testo semplice* in un file con l'estensione *.c* (ad esempio di nome trexpuno.c) * NON usate Word, Openoffice, Kword, Abiword che introducono caratteri strani * compilate (e contemporaneamente linkate) il programma con il comando <pre style='background:lightgrey'> gcc -g -o trexpuno trexpuno.c </pre> * eseguite il programma scrivendo <pre style='background:lightgrey'> ./trexpuno </pre> ---+++ Come consegnare il programma * Avete tempo fino a *%RED%Martedì 16 Novembre alle ore 24.00%FINE%* (ora sono le *%SERVERTIME{"$hou:$min del $day"}%*). * Consegnate *il testo del programma sorgente C* da voi scritto. Io lo compilerò e testerò. * Usate *esclusivamente* la <a href="/~prog1/consegna-Prog1.html">pagina di consegna</a>. Non verranno accettate spedizioni via email. * Set ALLOWTOPICCHANGE = Users.DocentiProg1Group -- Users.IvanoSalvo - 05 Nov 2004
This topic: Programmazione1/AA0506/PZ
>
WebHome
>
HomeWork104
Topic revision: r4 - 2004-11-10 - IvanoSalvo
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback