1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [Musiikki soi] 3 00:00:11,431 --> 00:00:12,500 >> ROB BOWDEN: Hei. 4 00:00:12,500 --> 00:00:13,230 Olen Rob. 5 00:00:13,230 --> 00:00:15,080 Ja Mennään Greedy. 6 00:00:15,080 --> 00:00:18,560 >> Joten ensimmäinen asia, joka meidän täytyy tehdä on kysyä käyttäjältä, miten 7 00:00:18,560 --> 00:00:20,500 paljon muutosta on velkaa. 8 00:00:20,500 --> 00:00:23,310 Joten tässä, me näemme meillä on do / while-silmukka. 9 00:00:23,310 --> 00:00:26,650 Ja olemme arvostelemassa dollaria yhtä GetFloat. 10 00:00:26,650 --> 00:00:27,890 Mikä on GetFloat? 11 00:00:27,890 --> 00:00:30,700 Se on yksi toimintoja CS50 kirjasto, joka saa 12 00:00:30,700 --> 00:00:32,450 float käyttäjältä. 13 00:00:32,450 --> 00:00:35,200 Muista, jotta käyttää tätä toimintoa, meidän hash sisällyttää 14 00:00:35,200 --> 00:00:37,790 CS50.h yläreunassa. 15 00:00:37,790 --> 00:00:42,310 >> Joten kun meillä on tuo arvo käyttäjä, meidän on myös olla varma, että 16 00:00:42,310 --> 00:00:43,560 se on kelvollinen arvo. 17 00:00:43,560 --> 00:00:46,050 Emme voi velkaa negatiivisia rahaa. 18 00:00:46,050 --> 00:00:48,460 Ja niin se on tarkoitus Tämän do / while-silmukka. 19 00:00:48,460 --> 00:00:52,420 Jatkamme kiehkura taas dollaria on pienempi kuin nolla. 20 00:00:52,420 --> 00:00:56,960 Ja do / while-silmukka on oikein käyttää täällä, koska meidän on kysyttävä 21 00:00:56,960 --> 00:01:00,290 Käyttäjä vähintään kerran miten paljon rahaa on velkaa. 22 00:01:00,290 --> 00:01:05,040 >> Joten kun meillä on tuo määrä dollareita, näemme tässä meillä on int senttiä 23 00:01:05,040 --> 00:01:08,630 vastaa pyöreä dollaria kertaa CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 Ylimpänä näemme, että CENTS_PER_DOLLAR on 25 00:01:10,740 --> 00:01:13,750 järkevästi määritelty 100. 26 00:01:13,750 --> 00:01:16,270 Joten mitä tämä linja tekee? 27 00:01:16,270 --> 00:01:21,200 >> No, jos muistat, liukulukuoperaatioita arvot eivät ole aivan tarkkoja. 28 00:01:21,200 --> 00:01:25,470 Toisin kuin kokonaislukuja, emme voi edustaa liukuluvuiksi tarkalleen. 29 00:01:25,470 --> 00:01:28,660 Aina on jonkinlainen epätarkkuuden. 30 00:01:28,660 --> 00:01:32,840 Joten me mieluummin työskennellä vain kokonaislukuja koko tämän ongelman. 31 00:01:32,840 --> 00:01:42,690 Ja tässä, jos käyttäjä kirjoittaa 3,42 dollaria, olemme muuntaa että 342 senttiä ja 32 00:01:42,690 --> 00:01:45,900 pyöristys, vain päästä eroon mitään siitä epätarkkuus. 33 00:01:45,900 --> 00:01:49,940 >> Joten kun meillä on useita senttiä kokonaisluku, voimme jatkaa 34 00:01:49,940 --> 00:01:51,730 Loput ohjelman. 35 00:01:51,730 --> 00:01:55,910 Näemme tässä, että olemme julistamisesta kokonaisluku kolikoita, jotka me olemme vain käyttää 36 00:01:55,910 --> 00:01:59,560 seurata yhteensä määrä kolikoita. 37 00:01:59,560 --> 00:02:01,590 Täällä meillä on ensimmäinen kun silmukka. 38 00:02:01,590 --> 00:02:06,780 >> Näemme taas senttiä on suurempi tai yhtä neljänneksellä, mikä edellä on hash 39 00:02:06,780 --> 00:02:14,680 määritellään 25, kun se on totta, me haluavat kasvattaa meidän kolikoiden määrä 40 00:02:14,680 --> 00:02:18,350 ja vähenemä senttiä neljänneksittäin. 41 00:02:18,350 --> 00:02:22,810 Muista, että tämä syntaksin vastaa senttiä 42 00:02:22,810 --> 00:02:26,020 vastaa senttiä miinus neljänneksellä. 43 00:02:26,020 --> 00:02:28,170 Nämä ovat samat. 44 00:02:28,170 --> 00:02:31,850 >> Joten mitä tämä kun silmukka teet? 45 00:02:31,850 --> 00:02:39,260 Ideana on, että jos tiedän 3,42 dollaria on velkaa, voin jatkaa antaa 46 00:02:39,260 --> 00:02:42,670 neljäsosaa, kunnes en voi antaa neljäsosaa enempää. 47 00:02:42,670 --> 00:02:47,720 En voi antaa neljäsosaa enempää, kun olen antanut 3,25 dollaria. 48 00:02:47,720 --> 00:02:53,300 >> Joten sitten, kun näin on, näytämme murtautua ulos tästä kun silmukka. 49 00:02:53,300 --> 00:02:57,650 Senttiä jää 17 senttiä. 50 00:02:57,650 --> 00:03:01,910 Ja jatkamme alas seuraavaan While-silmukka, jossa sanomme, kun taas senttiä 51 00:03:01,910 --> 00:03:04,270 on suurempi tai yhtä suuri kuin dime. 52 00:03:04,270 --> 00:03:07,420 >> Ja nyt teemme täsmälleen sama asia teimme neljänneksellä tapauksessa 53 00:03:07,420 --> 00:03:09,010 paitsi Dimes. 54 00:03:09,010 --> 00:03:15,050 Joten ,17dollari käymme silmukka kunnes voimme eivät enää anna penniäkään, joka on 55 00:03:15,050 --> 00:03:16,680 tasan kerran. 56 00:03:16,680 --> 00:03:20,470 Ja sitten me jäädä 7 senttiä. 57 00:03:20,470 --> 00:03:24,730 >> Sitten jatkamme edelleen Nickels, joka tulee silmukka kunnes emme voi antaa 58 00:03:24,730 --> 00:03:29,420 enempää nickels, joka tulee jättää meille kaksi senttiä. 59 00:03:29,420 --> 00:03:34,400 Ja sitten, alas alareunassa, meillä on penniä, mikä silmukka ja tulee 60 00:03:34,400 --> 00:03:37,140 lopulta jättää meille nolla senttiä. 61 00:03:37,140 --> 00:03:41,670 Sitten lopussa, meidän täytyy vain tulostaa meidän määrä kolikoita. 62 00:03:41,670 --> 00:03:44,980 >> Joten tämä ohjelma on täysin oikeassa. 63 00:03:44,980 --> 00:03:47,310 Mutta voimme itse tehdä vähän paremmin. 64 00:03:47,310 --> 00:03:52,660 Nyt jos sanon, että olen velkaa 10.000 dollaria, sinun ei tarvitse mennä tässä yksi 65 00:03:52,660 --> 00:03:55,310 neljänneksellä, kaksi vuosineljännestä, kolme neljäsosaa. 66 00:03:55,310 --> 00:03:59,450 Sinun pitäisi tietää heti, että Olen sinulle velkaa 40000 neljäsosaa. 67 00:03:59,450 --> 00:04:04,070 >> Nyt Katsotaanpa ohjelma, joka käsittelee sitä hieman paremmin. 68 00:04:04,070 --> 00:04:07,190 Tässä versiossa asioita, tarvitsemme edelleen pyytää käyttäjältä määrän 69 00:04:07,190 --> 00:04:10,930 muuttaa, että he haluavat täsmälleen samalla tavalla teimme ennen. 70 00:04:10,930 --> 00:04:14,110 Meidän täytyy pyöristää se tarkalleen me teimme ennen. 71 00:04:14,110 --> 00:04:17,910 Ja meillä on edelleen kolikoita kokonaisluku ilmoitettu täsmälleen sama kuin ennen. 72 00:04:17,910 --> 00:04:21,399 >> Joten tässä on, jos asiat saada hieman erilainen. 73 00:04:21,399 --> 00:04:24,640 Teemme kolikoita plus tasavertaisina senttiä jaettuna neljänneksellä 74 00:04:24,640 --> 00:04:27,140 jos neljännes on 25. 75 00:04:27,140 --> 00:04:31,790 Mitä tämä sanoo,, ottaa niin monta tahoilla voi mennä senttiä ja lisää 76 00:04:31,790 --> 00:04:33,030 että kolikoita. 77 00:04:33,030 --> 00:04:40,100 >> Joten jos senttiä on 142, 142 jaettuna 25 antaa meille 5. 78 00:04:40,100 --> 00:04:43,950 Muista, että kokonaislukujakolasku automaattisesti katkaisee. 79 00:04:43,950 --> 00:04:46,870 Joten teemme kolikoita plus vastaa 5. 80 00:04:46,870 --> 00:04:51,850 >> Heti tämän jälkeen, sanomme senttiä yhtä senttiä mod neljänneksellä. 81 00:04:51,850 --> 00:04:57,150 Muista, että mod Käyttäjä antaa meille loput jälkeen jako. 82 00:04:57,150 --> 00:05:05,840 Joten 142 mod neljänneksellä, joka antaa on 142 miinus 125, joka on 17. 83 00:05:05,840 --> 00:05:10,470 Tuo loput jälkeen teet 142 jaettuna 25. 84 00:05:10,470 --> 00:05:13,040 >> Joten nyt senttiä on 17. 85 00:05:13,040 --> 00:05:16,080 Ja teemme täsmälleen sama asia Dimes. 86 00:05:16,080 --> 00:05:18,620 17 jaettuna 10 antaa meille 1. 87 00:05:18,620 --> 00:05:20,150 Ja lisäämme, että kolikoita. 88 00:05:20,150 --> 00:05:25,380 Ja sitten me päivitämme senttiä olla 17 mod 10, mikä on 7. 89 00:05:25,380 --> 00:05:27,200 >> Ja sitten sama nickels. 90 00:05:27,200 --> 00:05:29,180 7 jaettuna 5 on 1. 91 00:05:29,180 --> 00:05:30,880 Lisätä, että kolikoita. 92 00:05:30,880 --> 00:05:34,600 Ja sitten 7 mod 5 on 2. 93 00:05:34,600 --> 00:05:35,910 Ja se on meidän senttiä. 94 00:05:35,910 --> 00:05:39,065 >> Ja sitten, penniä, ei ole todellista mielekästä jakaa tai Modaus, koska 95 00:05:39,065 --> 00:05:42,170 jos meillä on 0,2 dollaria jäljellä, voimme vain heti lisätä, että 96 00:05:42,170 --> 00:05:43,590 meidän määrä kolikoita. 97 00:05:43,590 --> 00:05:48,210 Ja lopuksi, meidän täytyy tulostaa meidän määrä kolikoita, ja mahdollisesti 98 00:05:48,210 --> 00:05:52,100 return 0 lopussa ohjelmamme merkiksi kaikki toimi. 99 00:05:52,100 --> 00:05:53,120 >> Nimeni on Rob. 100 00:05:53,120 --> 00:05:54,020 Ja tämä oli ahne. 101 00:05:54,020 --> 00:05:57,620 >> [Musiikki soi] 102 00:05:57,620 --> 00:06:01,515