<ul> <li> <a href="#Homework_compito_per_casa_1">Homework 1 </a> </li> <li> <a href="#Sguatteri">Sguatteri problem</a> <ul> <li> <a href="#Descrizione">Descrizione</a> <ul> <li> <a href="#Input">Input</a> </li> <li> <a href="#Output">Output</a> </li> </ul> </li> <li> <a href="#Come_compilare_ed_eseguire_il_pr">Come compilare ed eseguire il programma</a> </li> <li> <a href="#Come_consegnare_il_programma">Come consegnare il programma</a> </li> </ul> </li> </ul> <hr /> <p /> <h3><a name="Descrizione"> </a> Descrizione </h3> <p /> Due sguatteri devono lavare una pila di N piatti. Uno dei due propone all'altro il seguente gioco: "A turno togliamo dalla pila da 1 a K-1 piatti. Chi rimuove l'ultimo piatto li deve lavare tutti". <p /> Se il resto di N modulo K e' diverso da 1 (e assumendo K, N >=2), esiste una strategia che fa vincere sempre il primo giocatore. L'idea e' la seguente: inizialmente il primo giocatore rimuove un numero di piatti tale che il numero N' di piatti rimanenti e' cK+1 per qualche numero naturale c (questo e' sempre possibile rimuovendo almeno un piatto e non più di K-1). Quindi, ogni volta che il secondo giocatore rimuove X piatti, l'altro ne rimuove K-X (valore compreso fra 1 e K-1). <p /> Voi dovrete semplicemente scrivere un programma che implementa la strategia vincente del primo giocatore sotto le ipotesi suddette su N e K. Per esempio se N=18, K=5, e le scelte del secondo giocatore (prima della mossa finale in cui è costretto a rimuovere l'ultimo piatto rimasto) sono, nell'ordine, 4, 2 e 3, i valori in input saranno nell'ordine<br> 18<br> 5<br> 4<br> 2<br> 3<br> e l'output dovrà essere<br> 2<br> 1<br> 3<br> 2<br> <p /> <h4><a name="Input"> </a> Input </h4> In input ricevete nell'ordine N, K e la sequenza di interi corrispondenti alle mosse del secondo giocatore <p /> <h4><a name="Output"> </a> Output </h4> Dovete stampare in sequenza ciascun intero x corrispondente alle mosse del primo giocatore, usando un'istruzione del tipo <pre style='background:lightgrey'> printf("%d\n",passi); </pre> <p /> <strong><em><font color="#ff0000">Attenzione</font></em></strong> NON producete nessuna altra scritta oltre i numeri, altrimenti il test automatico del vostro programma fallirà miseramente! <img src="http://twiki.dsi.uniroma1.it/pub/TWiki/SmiliesPlugin/frown.gif" alt="frown" title="frown" border="0" /> <p /> <h3><a name="Come_compilare_ed_eseguire_il_pr"> </a> Come compilare ed eseguire il programma </h3> <ul> <li> usate un editor per scrivere il testo del programma e salvatelo in formato <strong>testo semplice</strong> in un file con l'estensione <strong>.c</strong> (ad esempio di nome trexpuno.c) <ul> <li> NON usate Word, Openoffice, Kword, Abiword che introducono caratteri strani </li> </ul> </li> <li> compilate (e contemporaneamente linkate) il programma con il comando </li> </ul> <pre style='background:lightgrey'> gcc -g -o programma programma.c </pre> <ul> <li> eseguite il programma scrivendo </li> </ul> <pre style='background:lightgrey'> ./programma </pre> <p /> <p /> <h3><a name="Come_consegnare_il_programma"> </a> Come consegnare il programma </h3> <p /> <ul> <li> Avete tempo fino a <strong><font color="#ff0000">Giovedi' 10 Novembre alle ore 23.59</font></strong>. </li> <li> Consegnate <strong>il testo del programma sorgente C</strong> da voi scritto. Io lo compilerò e testerò. </li> <li> Usate <strong>esclusivamente</strong> la pagina di consegna. Non verranno accettate spedizioni via email. </li> </ul> <p /> <ul> <li> Set ALLOWTOPICCHANGE = <a class="twikiLink" href="/twiki/view/Users/DocentiProg1Group">DocentiProg1Group</a> </li> </ul> <p /> -- <a class="twikiLink" href="/twiki/view/Users/FabrizioGrandoni">FabrizioGrandoni</a> - 05 Nov 2004 <br class="twikiClear" />
This topic: Programmazione1/AA0506/AD
>
ConsegnaCompiti
>
WebHome
>
HomeWork1
Topic revision: r5 - 2005-11-08 - FabrizioGrandoni
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback