באַגאַזלענען באָודאַן: הי, איך בין ראָב באָוודען, און לאָזן ס רעדן וועגן קוויז0. אַזוי, ערשטער קשיא. דאס איז די קשיא וואו איר דארף צו קאָד די נומער 127 אין די ביינערי באַלבז. אויב איר געוואלט, איר קען טאָן די רעגולער באַניצער פון בי-- אָדער, פון דעצימאַל צו ביינערי. אבער אַז ס מיסטאָמע געגאנגען צו נעמען אַ פּלאַץ פון צייַט. איך מיינען, איר קען רעכענען אויס אַז, גוט, 1 איז אין דאָרט, 2 איז אין עס, 4 איז אין דאָרט, 8 איז אין דאָרט. גרינגער וועג, 127 איז 128 מינוס איינער. אַז לעפטמאָסט ליכט ציבעלע איז די 128-ביסל. אזוי 127 איז טאַקע נאָר אַלע פון די אנדערע ליכט באַלבז, זינט אַז ס די לעפטמאָסט ליכט ציבעלע מינוס 1. אַז ס עס פֿאַר אַז קשיא. פראגע איינער. אזוי מיט 3 ביטן איר קענען פאָרשטעלן 8 בוילעט וואַלועס. פארוואס, דעמאָלט, איז 7 די גרעסטן ניט-נעגאַטיוו דעצימאַל ינטעגער איר קענען פאָרשטעלן? נו, אויב מיר קענען בלויז פאָרשטעלן 8 בוילעט וואַלועס, דעמאָלט וואָס מיר רע געגאנגען צו זייַן רעפּריזענטינג איז 0 דורך 7. 0 נעמט זיך איינער פון די וואַלועס. פראגע צוויי. מיט n ביטן, ווי פילע בוילעט וואַלועס קענען איר פאָרשטעלן? אזוי, מיט n ביטן, איר האָבן 2 מעגלעך וואַלועס פֿאַר יעדער ביסל. אזוי מיר האָבן 2 מעגלעך וואַלועס פֿאַר דער ערשטער ביסל, 2 מעגלעך וואַלועס פֿאַר די רגע, 2 מעגלעך פֿאַר די דריט. און אַזוי אַז ס 2 מאל 2 מאל 2, און לעסאָף די ענטפער איז 2 צו די ען. פראגע דרייַ. וואָס ס 0קס50 אין ביינערי? אזוי געדענקען אַז העקסאַדעסימאַל האט אַ זייער סטרייטפאָרווערד באַניצער צו ביינערי. אַזוי דאָ, מיר נאָר דאַרפֿן צו קוקן בייַ די 5 און די 0 ינדיפּענדאַנטלי. אזוי וואָס ס 5 אין ביינערי? 0101, אַז ס די 1 ביסל און די 4 ביסל. וואָס ס 0 אין ביינערי? ניט טריקי. 0000. אזוי נאָר שטעלן זיי צוזאַמען, און אַז ס די פול נומער אין ביינערי. 01,010,000. און אויב איר געוואלט איר געקענט נעמען אַוועק אַז לעפטמאָסט נול. עס ס ירעלאַוואַנט. אַזוי דעמאָלט אַלטערנאַטיוועלי, וואָס איז 0קס50 אין דעצימאַל? אויב איר געוואלט, איר קאָולד-- אויב איר 'רע מער באַקוועם מיט די ביינערי, איר קען נעמען אַז ביינערי ענטפֿערן און גער, אז אין דעצימאַל. אָדער מיר קען נאָר געדענקען אַז העקסאַדעסימאַל. אזוי וואָס 0 איז אין די 0-טה אָרט, און די 5 איז אין די 16 צו די ערשטער אָרט. אַזוי דאָ, מיר האָבן 5 מאל 16 צו די ערשטער, פּלוס 0 מאל 16 צו די נול, איז 80. און אויב איר געקוקט בייַ די טיטל צו די קשיא, עס איז געווען קס 80, וואָס איז מין פון אַ אָנצוהערעניש צו די ענטפער צו דעם פּראָבלעם. פראגע פינף. מיר האָבן דעם סקראַטטש שריפט, וואָס איז ריפּיטינג 4 מאל פיסטאַשקע פּוטער זשעלע. אַזוי ווי טאָן מיר איצט קאָד אַז אין C? נו, מיר האָבן הערע-- די טייל אין דרייסט איז דער בלויז טייל איר האט צו מאַכשער. אַזוי מיר האָבן אַ 4 שלייף אַז ס לופּינג 4 צייטן, פּרינטף-ינג פיסטאַשקע פּוטער זשעלע, מיט נייַ שורה ווי דער פּראָבלעם פרעגט פֿאַר. פראגע זעקס, אנדערן סקראַטטש פּראָבלעם. מיר זען אַז מיר זענען אין אַ אייביק שלייף. מיר ניטאָ געזאגט די בייַטעוודיק איך און דעריבער ינקרעמענטינג איך דורך 1. איצט מיר ווילן צו טאָן אַז אין סי עס זענען קייפל וועגן מיר קען האָבן געטאן דעם. דאָ מיר געטראפן צו קאָד די אייביק שלייף ווי אַ בשעת (אמת). אַזוי מיר דערקלערן די בייַטעוודיק איך, נאָר ווי מיר האבן בייַטעוודיק איך אין קראַצן. דערקלערן די בייַטעוודיק איך, און אויף אייביק בשעת (אמת), מיר זאָגן די בייַטעוודיק איך. אַזוי פּרינטף% י-- אָדער איר קען ווע געניצט% ד. מיר זאָגן אַז בייַטעוודיק, און דעמאָלט ינקראַמאַנט עס, איך ++. פראגע זיבן. איצט מיר ווילן צו טאָן עפּעס זייער ענלעך צו מאַריאָ פּינטעלע C פון פּראָבלעם שטעלן איין. מיר ווילן צו דרוקן די האַשטאַגס, מיר ווילן צו דרוקן אַ פינף דורך דרייַ גראָדעק פון די כאַשאַז. אַזוי ווי זענען מיר געגאנגען צו טאָן אַז? נו, מיר געבן איר אַ גאַנץ בינטל פון קאָד, און איר נאָר האָבן צו פּלאָמבירן אין די דרוק גריד פונקציאָנירן. אזוי וואָס טוט פּרינטגריד קוקן ווי? נו איר ניטאָ פאַרגאַנגענהייַט די ברייט און די הייך. אַזוי מיר האָבן אַ ויסווייניקסט 4 שלייף, אַז ס לופּינג איבער אַלע פון ​​די ראָוז פון דעם גריד אַז מיר ווילן צו דרוקן אויס. דעמאָלט מיר האָבן דעם ינטער-נעסטעד 4 שלייף, אַז ס דרוקן איבער יעדער קאָלאָנע. אַזוי פֿאַר יעדער רודערן, מיר דרוקן פֿאַר יעדער זייַל, אַ איין האַש. דעריבער בייַ דער סוף פון די רודערן מיר דרוקן אַ איין נייַ שורה צו גיין צו די ווייַטער רודערן. און אַז ס עס פֿאַר די גאנצע גריד. פראגע אַכט. א פונקציע ווי פּרינטגריד איז געזאגט צו האָבן אַ זייַט ווירקונג, אָבער ניט אַ צוריקקומען ווערט. דערקלערן די דיסטינגקשאַן. אזוי דעם רעליעס אויף איר רימעמברינג וואָס אַ זייַט ווירקונג איז. נו, אַ צוריקקומען וואַלוע-- מיר וויסן פּרינטגריד טוט ניט האָבן צוריקקומען ווערט, זינט רעכט דאָ עס זאגט פּאָסל. אַזוי עפּעס וואָס קערט פּאָסל טוט ניט טאַקע צוריקקומען עפּעס. אזוי וואָס איז די זייַט ווירקונג? נו, אַ זייַט ווירקונג איז עפּעס אַז סאָרט פון בלייַבט נאָך די פונקציע ענדס וואָס איז געווען ניט נאָר אומגעקערט, און עס איז געווען ניט נאָר פֿון די ינפּוץ. אַזוי, פֿאַר בייַשפּיל, מיר זאלן טוישן אַ גלאבאלע בייַטעוודיק. וואָס וואָלט זייַן אַ זייַט ווירקונג. אין דעם באַזונדער פאַל, אַ זייער וויכטיק זייַט ווירקונג איז דרוקן צו די פאַרשטעלן. אזוי וואָס איז אַ זייַט ווירקונג אַז פּרינטגריד האט. מיר דרוקן די זאכן צו די פאַרשטעלן. און איר קענען טראַכטן פון אַז ווי אַ זייַט ווירקונג, זינט אַז ס עפּעס אַז בלייַבט נאָך דעם פונקציע ענדס. אַז ס עפּעס אַרויס דעם פאַרנעם פון דעם פונקציאָנירן אַז לעסאָף איז זייַענדיק געביטן, די אינהאַלט פון די פאַרשטעלן. פראגע נייַן. באטראכט די פּראָגראַם ווייטער, צו וועלכע שורה נומערן האָבן שוין צוגעלייגט פֿאַר די צוליב פון דיסקוסיע. אַזוי אין דעם פּראָגראַם מיר זענען פּונקט פאַך געצטרינג, סטאָרינג עס אין דעם בייַטעוודיק s, און דעמאָלט דרוקן אַז בייַטעוודיק ס. גוט. אַזוי דערקלערן וואָס שורה איינער איז פאָרשטעלן. #ינקלודע קס50 פּינטעלע ה. פארוואס טאָן מיר דאַרפֿן צו #ינקלודע קס50 פּינטעלע ה? נו מיר ניטאָ פאַך די געצטרינג פונקציאָנירן, און געצטרינג איז דיפיינד אין די קס50 ביבליאָטעק. אַזוי אויב מיר האבן נישט האָבן #ינקלודע קס50 פּינטעלע ה, מיר וואָלט באַקומען אַז ימפּליסאַט דעקלאַראַציע פון די געצטרינג פונקציאָנירן טעות פון דער קאַמפּיילער. אַזוי מיר דאַרפֿן צו אַרייַננעמען די ליבראַרי-- מיר דאַרפֿן צו אַרייַננעמען די קאָפּצעטל טעקע, אָדער אַנדערש דער קאַמפּיילער וועט ניט דערקענען אַז געצטרינג יגזיסס. דערקלערן וואָס שורה צוויי איז פאָרשטעלן. אַזוי נאָרמאַל io פּינטעלע ה. עס ס פּונקט דער זעלביקער ווי די פרייַערדיק פּראָבלעם, אַחוץ אַנשטאָט פון דילינג מיט געצטרינג, מיר ניטאָ גערעדט וועגן פּרינטף. אזוי אויב מיר האט ניט זאָגן מיר דאַרפֿן צו אַרייַננעמען נאָרמאַל io פּינטעלע ה, דעמאָלט מיר וואָלט ניט קענען צו נוצן די פּרינטף פונקציאָנירן, ווייַל דער קאַמפּיילער וואָלט ניט וויסן וועגן עס. ווהי-- וואָס איז דער באַטייַט פון פּאָסל אין שורה פיר? אַזוי דאָ מיר האָבן ינט הויפּט (פּאָסל). אַז ס נאָר געזאגט אַז מיר זענען ניט געטינג קיין באַפֿעל שורה טענות צו הויפּט. געדענק אַז מיר געקענט זאָגן ינט הויפּט ינט אַרגק שטריקל אַרגוו בראַקאַץ. אַזוי דאָ מיר נאָר זאָגן פּאָסל צו זאָגן מיר זענען יגנאָרינג באַפֿעל שורה טענות. דערקלערן, מיט רעספּעקט צו זיקאָרן, פּונקט וואָס געצטרינג אין שורה זעקס קערט. געצטרינג איז אומגעקערט אַ בלאָק פון זכּרון, אַ מענגע פון ​​אותיות. עס ס טאַקע אומגעקערט אַ טייַטל צו דער ערשטער כאַראַקטער. געדענק אַז אַ שטריקל איז אַ טשאַר שטערן. אזוי s איז אַ טייַטל צו דער ערשטער כאַראַקטער אין וועלכער די שטריקל איז אַז דער באַניצער אריין בייַ די קלאַוויאַטור. און אַז זכּרון כאַפּאַנז צו זיין מאַללאָסעד, אַזוי אַז זכּרון איז אין די קופּע. פראגע 13. באטראכט די פּראָגראַם אונטן. אַזוי אַלע דעם פּראָגראַם איז טאן איז פּרינטף-ינג 1 צעטיילט דורך 10. אזוי ווען צונויפגעשטעלט און עקסאַקיוטאַד, דעם פּראָגראַם אַוטפּוץ 0.0, אפילו כאָטש 1 צעטיילט דורך 10 איז 0.1. אזוי וואָס איז עס 0.0? נו, דאָס איז ווייַל פון ינטעגער אָפּטייל. אַזוי 1 איז אַ ינטעגער, 10 איז אַ ינטעגער. אַזוי 1 צעטיילט דורך 10, אַלץ איז באהאנדלט ווי ינטאַדזשערז, און אין C, ווען מיר טאָן ינטאַדזשער אָפּטייל, מיר טרונקאַטע קיין דעצימאַל פונט. אַזוי 1 צעטיילט דורך 10 איז 0, און דעמאָלט מיר רע טריינג צו דרוקן וואָס ווי אַ לאָזנ שווימען, אַזוי נול געדרוקט ווי אַ לאָזנ שווימען איז 0.0. און אַז ס וואָס מיר באַקומען 0.0. באטראכט די פּראָגראַם אונטן. איצט מיר רע דרוקן 0.1. אזוי קיין ינטאַדזשער אָפּטייל, מיר 'רע נאָר דרוקן 0.1, אָבער מיר רע דרוקן עס צו 28 דעצימאַל ערטער. און מיר באַקומען דעם 0.1000, אַ גאַנץ בינטל פון זעראָס, 5 5 5, בלאַ בלאַ בלאַ. אזוי די קשיא דאָ איז וואָס טוט עס דרוק אַז, אַנשטאָט פון פּונקט 0.1? אזוי די סיבה דא איז איצט פלאָוטינג פונט ימפּרעסיסיאָן. געדענק אַז אַ לאָזנ שווימען איז נאָר 32 ביטן. אַזוי מיר קענען נאָר פאָרשטעלן אַ ענדלעך נומער פון פלאָוטינג פונט וואַלועס מיט די 32 ביטן. גוט עס ס לעסאָף ינפאַנאַטלי פילע פלאָוטינג פונט וואַלועס, און דאָרט ס ינפאַנאַטלי פילע פלאָוטינג פונט וואַלועס אין צווישן 0 און 1, און מיר ניטאָ דאָך קענען צו פאָרשטעלן אפילו מער וואַלועס ווי אַז. אַזוי מיר האָבן צו מאַכן קרבנות צו קענען צו פאָרשטעלן רובֿ וואַלועס. אזוי אַ ווערט ווי 0.1, משמעות מיר קענען נישט פאָרשטעלן אַז פּונקט. אזוי אַנשטאָט פון רעפּריזענטינג 0.1 מיר טאָן די בעסטער מיר קענען פאָרשטעלן דעם 0.100000 5 5 5. און אַז ס שיין נאָענט, אָבער פֿאַר אַ פּלאַץ פון פּראָגראַמען איר האָבן צו זאָרג וועגן פלאָוטינג פונט ימפּרעסיסיאָן, ווייַל מיר נאָר קענען נישט פאָרשטעלן אַלע פלאָוטינג ווייזט פּונקט. פראגע 15. באטראכט די קאָד ווייטער. מיר 'רע נאָר דרוקן 1 פּלוס 1. אזוי עס איז ניט קיין קונץ דאָ. 1 פּלוס 1 יוואַליוייץ צו 2, און דעמאָלט מיר רע דרוקן אַז. דאס נאָר פּרינץ 2. פראגע 16. איצט מיר רע דרוקן די כאַראַקטער 1 פּלוס די כאַראַקטער 1. אזוי וואָס טוט דעם ניט דרוקן די זעלבע זאַך? נו דער כאַראַקטער 1 פּלוס די כאַראַקטער 1, די כאַראַקטער 1 האט אַסקי ווערט 49. אַזוי דעם איז טאַקע זאגן 49 פּלוס 49, און לעסאָף דאָס איז געגאנגען צו דרוקן 98. אַזוי דעם טוט נישט דרוקן 2. פראגע 17. פאַרענדיקן די ימפּלאַמענטיישאַן פון מאָדנע ווייטער אין אַזאַ אַ וועג אַז די פונקציאָנירן קערט אמת אויב ן איז מאָדנע און פאַלש אויב N איז אפילו. דאס איז אַ גרויס ציל פֿאַר די מאָד אָפּעראַטאָר. אַזוי מיר נעמען אונדזער אַרגומענט ן, אויב N מאָד 2 יקוואַלז 1, געזונט אַז מיטל אַז N צעטיילט דורך 2 האט אַ רעשט. אויב N צעטיילט דורך 2 האט אַ רעשט, אַז מיטל אַז N איז מאָדנע, אַזוי מיר צוריקקומען אמת. אַנדערש מיר צוריקקומען פאַלש. איר אויך קען האָבן געטאן ן מאָד 2 יקוואַלז נול, צוריקקומען פאַלש, אַנדערש צוריקקומען אמת. באטראכט די רעקורסיווע פונקציאָנירן אונטן. אַזוי אויב N איז ווייניקער ווי אָדער גלייַך צו 1, צוריקקומען 1, אַנדערש צוריקקומען N מאל ף פון n מינוס 1. אזוי וואָס איז דעם פונקציאָנירן? נו, דאָס איז פּונקט די פאַקטאָריאַל פונקציאָנירן. דאס איז נייסלי רעפּראַזענטאַד ווי N פאַקטאָריאַל. אזוי קשיא 19 איצט, מיר ווילן צו נעמען דעם רעקורסיווע פונקציאָנירן. מיר ווילן צו מאַכן עס יטערייטיוו. אַזוי ווי טאָן מיר טאָן אַז? גוט פֿאַר די שטעקן לייזונג, און ווידער עס ס קייפל וועגן איר געקענט האָבן געטאן אַז, מיר אָנהייבן מיט דעם ינט פּראָדוקט יקוואַלז 1. און איבער דעם פֿאַר שלייף, מיר רע געגאנגען צו זיין מאַלטאַפּלייינג פּראָדוקט צו לעסאָף סוף אַרויף מיט די פול פאַקטאָריאַל. אזוי פֿאַר ינט איך יקוואַלז 2, איך איז ווייניקער ווי אָדער גלייַך צו N, איך ++. איר זאל זיין וואַנדערינג וואָס איך יקוואַלז 2. נו, געדענקען אַז דאָ מיר האָבן צו מאַכן זיכער אונדזער באַזע פאַל איז ריכטיק. אַזוי אויב N איז ווייניקער ווי אָדער גלייַך צו 1, מיר רע נאָר אומגעקערט 1. אזוי איבער דאָ, מיר אָנהייבן בייַ איך יקוואַלז 2. נו אויב איך געווען 1, דעמאָלט טהע-- אָדער אויב N געווען 1, דעמאָלט דעם פֿאַר שלייף וואָלט ניט ויספירן בייַ אַלע. און אַזוי מיר וואָלט נאָר צוריקקומען פּראָדוקט, וואָס איז 1. סימילאַרלי, אויב N האבן עפּעס ווייניקער ווי 1-- אויב עס זענען געווען 0, נעגאַטיוו 1, ווהאַטעווער-- מיר'ד נאָך זיין אומגעקערט 1, וואָס איז פּונקט וואָס די רעקורסיווע ווערסיע איז טאן. איצט, אויב N איז גרעסער ווי 1, דעמאָלט מיר רע געגאנגען צו טאָן בייַ מינדסטער איין יטעראַטיאָן פון דעם שלייף. אַזוי לאָזן ס זאָגן N איז 5, דעמאָלט מיר 'רע גיי צו טאָן פּראָדוקט מאל יקוואַלז 2. אזוי איצט פּראָדוקט איז 2. איצט מיר רע געגאנגען צו טאָן פּראָדוקט מאל יקוואַלז 3. איצט עס ס 6. פּראָדוקט מאל יקוואַלז 4, איצט עס ס 24. פּראָדוקט מאל יקוואַלז 5, איצט עס ס 120. אַזוי דעמאָלט לעסאָף, מיר רע אומגעקערט 120, וואָס איז ריכטיק 5 פאַקטאָריאַל. פראגע 20. דאס איז דער איין ווו איר האָבן צו פּלאָמבירן אין דעם טיש מיט קיין געגעבן אַלגערידאַם, עפּעס אַז מיר ווע געזען, אַז פיץ די אַלגאָריטהמיק לויפן מאל די אַסימפּטאָטיק לויפן מאל. אזוי וואָס איז אַ אַלגערידאַם אַז איז תוו פון 1, אָבער גרויס אָ פון ען? אַזוי עס קען זיין ינפאַנאַטלי פילע ענטפֿערס דאָ. די איין אַז מיר ווע געזען מיסטאָמע רובֿ אָפט איז נאָר לינעאַר זוכן. אַזוי אין דער בעסטער פאַל סצענאַר, די נומער מיר רע קוקן פֿאַר איז בייַ די אָנהייב פון דער רשימה און אַזוי אין תוו פון 1 טריט, דער ערשטער זאַך מיר קאָנטראָלירן, מיר נאָר מיד צוריקקומען וואָס מיר געפינען דעם פּונקט. אין די ערגסט פאַל סצענאַר, די נומער איז בייַ דער סוף, אָדער די נומער איז נישט אין די רשימה בייַ אַלע. אַזוי מיר האָבן צו זוכן די גאנצע רשימה, אַלע N יסודות, און אַז ס וואָס עס ס אָ פון N. אַזוי איצט עס ס עפּעס אַז ס ביידע תוו פון ען קלאָץ ען, און גרויס אָ פון N קלאָץ ען. גוט די מערסט באַטייַטיק זאַך מיר ווע געזען דאָ איז צונויפגיסן סאָרט. אַזוי צונויפגיסן סאָרט, געדענקען, איז לעסאָף טייטאַ פון N קלאָץ N, ווו טייטאַ איז דיפיינד אויב ביידע תוו און גרויס אָ זענען די זעלבע. ביידע N קלאָץ ען. וואָס ס עפּעס אַז ס תוו פון N, און אָ פון N סקווערד? נו, ווידער עס ס קייפל מעגלעך ענטפֿערס. דאָ מיר פּאַסירן צו זאָגן בלאָז סאָרט. ינסערשאַן סאָרט וואָלט אויך אַרבעט דאָ. געדענק אַז בלאָז סאָרט האט אַז אַפּטאַמאַזיישאַן ווו, אויב איר זענען קענען צו באַקומען דורך די גאנצע רשימה אָן נידינג צו טאָן קיין סוואַפּס, דעמאָלט, נו, מיר קענען מיד צוריקקומען אַז די רשימה איז געווען אויסגעשטעלט צו אָנהייבן מיט. אַזוי אין דער בעסטער פאַל סצענאַר, עס ס נאָר תוו פון ען. אויב עס ס ניט נאָר אַ נייסלי אויסגעשטעלט רשימה צו אָנהייבן מיט, דעמאָלט מיר האָבן אָ פון N סקווערד סוואַפּס. און לעסאָף, מיר האָבן סעלעקציע סאָרט פֿאַר N סקווערד, ביידע תוו און גרויס אָו פראגע 21. וואָס ס ינטעגער לויפן? גוט ווידער, ענלעך צו פריער, מיר בלויז האָבן פיניטעלי פילע ביטן צו פאָרשטעלן אַ ינטאַדזשער, אַזוי אפֿשר 32 ביטן. זאל ס זאָגן מיר האָבן אַ געחתמעט ינטעגער. דעמאָלט לעסאָף די העכסטן בעפיירעש נומער מיר קענען פאָרשטעלן איז 2 צו די 31 מינוס 1. אַזוי וואָס כאַפּאַנז אויב מיר פּרובירן צו דעמאָלט ינקראַמאַנט אַז ינטאַדזשער? נו, מיר רע געגאנגען צו גיין פון 2 צו די 31 מינוס 1, אַלע די וועג אַראָפּ צו נעגאַטיוו 2 צו די 31. אזוי דעם ינטעגער לויפן איז ווען איר האַלטן ינקרעמענטינג, און לעסאָף איר קענען ניט באַקומען קיין העכער און עס נאָר ראַפּס אַלע די וועג צוריק אַרום צו אַ נעגאַטיוו ווערט. וואָס וועגן אַ באַפער לויפן? אזוי אַ באַפער אָווערפלאָוו-- געדענקען וואָס אַ באַפער איז. עס ס נאָר אַ פּייַדע פון ​​זכּרון. עפּעס ווי אַ מענגע איז אַ באַפער. אזוי אַ באַפער לויפן איז ווען איר פּרובירן צו צוטריט זיקאָרן ווייַטער פון די סוף פון אַז מענגע. אַזוי אויב איר האָבן אַ מענגע פון ​​גרייס 5 און איר פּרובירן צו צוטריט מענגע קלאַמער 5 אָדער קלאַמער 6 אָדער קלאַמער 7, אָדער עפּעס ווייַטער פון די סוף, אָדער אַפֿילו עפּעס בעלאָוו-- מענגע קלאַמער נעגאַטיוו 1-- אַלע פון ​​די ביסט באַפער אָוווערפלאָוז. איר ניטאָ רירנדיק זכּרון אין שלעכט וועגן. פראגע 23. אַזוי אין דעם איין איר דאַרפֿן צו מאַכשער סטרלען. און מיר זאָגן איר אַז איר קענען יבערנעמען s וועט ניט זיין נאַל, אַזוי איר טאָן ניט האָבן צו טאָן קיין טשעק פֿאַר נאַל. און עס זענען קייפל דרכים איר קען האָבן געטאן דעם. דאָ מיר נאָר נעמען די סטרייטפאָרווערד. מיר אָנהייבן מיט אַ טאָמבאַנק, ען. ן איז קאַונטינג ווי פילע אותיות עס זענען. אַזוי מיר אָנהייבן בייַ 0, און דעמאָלט מיר יטעראַטע איבער די גאנצע רשימה. איז s קלאַמער 0 גלייַך צו די נאַל טערמינאַטאָר כאַראַקטער? געדענקען מיר 'רע איר זוכט פֿאַר די נאַל טערמינאַטאָר כאַראַקטער צו באַשטימען ווי לאַנג אונדזער שטריקל איז. וואס איז געגאנגען צו פאַרענדיקן קיין באַטייַטיק שטריקל. אזוי איז s קלאַמער 0 גלייַך צו די נאַל טערמינאַטאָר? אויב עס ס ניט, דעמאָלט מיר רע געגאנגען צו קוקן בייַ s קלאַמער 1, s קלאַמער 2. מיר האַלטן געגאנגען ביז מיר געפינען די נאַל טערמינאַטאָר. אַמאָל מיר ווע געפונען עס, דעמאָלט N כּולל די גאַנץ לענג פון די שטריקל, און מיר קענען נאָר צוריקקומען אַז. פראגע 24. אזוי דעם איז דער איין ווו איר האָבן צו מאַכן די האַנדל אַוועק. אזוי איינער זאַך איז גוט אין איין וועג, אָבער אין וואָס וועג איז עס שלעכט? אזוי דאָ, צונויפגיסן סאָרט טענדז צו זייַן פאַסטער ווי בלאָז סאָרט. ווייל האט געזאגט טהאַט-- געזונט, עס זענען קייפל ענטפֿערס דאָ. אבער די הויפּט איינער איז אַז בלאָז סאָרט איז תוו פון ען פֿאַר אַ אויסגעשטעלט רשימה. געדענק אַז טיש מיר נאָר געזען פריער. אזוי בלאָז סאָרץ תוו פון ען, די בעסטער פאַל סצענאַר איז עס ס קענען צו נאָר גיין איבער די רשימה אַמאָל, באַשטימען היי דעם זאַך איז שוין אויסגעשטעלט, און צוריקקומען. צונויפגיסן סאָרט, קיין ענין וואָס איר טאָן, איז תוו פון ען קלאָץ ען. אזוי פֿאַר אויסגעשטעלט רשימה, בלאָז סאָרט ס געגאנגען צו זייַן פאַסטער. איצט וואָס וועגן לינגקט רשימות? אזוי אַ לינגקט רשימה קענען וואַקסן און ייַנשרומפּן צו פּאַסיק ווי פילע עלעמענטן ווי דארף. ווייל האט געזאגט טהאַט-- אַזוי יוזשאַוואַלי די דירעקט פאַרגלייַך איז געגאנגען צו זייַן אַ לינגקט רשימה מיט אַ מענגע. אַזוי אַפֿילו כאָטש ערייז קענען לייכט וואַקסן און ייַנשרומפּן צו פּאַסיק ווי פילע עלעמענטן ווי דארף, אַ לינגקט רשימה קאַמפּערד צו אַן אַררייַ-- אַ מענגע האט טראַפ צוטריט. מיר קענען אינדעקס אין קיין באַזונדער עלעמענט פון דער מענגע. אזוי פֿאַר אַ לינגקט רשימה, מיר קענען נישט נאָר גיין צו די פינפט עלעמענט, מיר האָבן צו דורך פון די אָנהייב ביז מיר באַקומען צו די פינפט עלעמענט. און אַז ס געגאנגען צו פאַרמייַדן אונדז פון טאן עפּעס ווי ביינערי זוכן. ספּיקינג פון ביינערי זוכן, ביינערי זוכן טענדז צו זייַן פאַסטער ווי לינעאַר זוכן. ווייל האט געזאגט טהאַט-- אַזוי, איינער מעגלעך זאַך איז אַז איר קענען ניט טאָן ביינערי זוכן אויף לינגקט רשימות, איר קענען נאָר טאָן עס אויף ערייז. אבער מיסטאָמע מער ימפּאָרטאַנטלי, איר קענען ניט טאָן ביינערי זוכן אויף אַ מענגע אַז איז נישט אויסגעשטעלט. אַפּפראַנט איר זאל דאַרפֿן צו סאָרט די מענגע, און בלויז דעמאָלט קענען איר טאָן ביינערי זוכן. אזוי אויב דיין זאַך איז נישט אויסגעשטעלט צו אָנהייבן מיט, דעמאָלט לינעאַר זוכן זאל זיין פאַסטער. פראגע 27. אַזוי באַטראַכטן די פּראָגראַם ווייטער, וואָס וועט זיין אין די ווייַטער רוק. און דעם איז דער איין ווו מיר רע געגאנגען צו ווילן צו בפירוש שטאַט די וואַלועס פֿאַר פאַרשידן וועריאַבאַלז. אַזוי לאָזן ס קוק בייַ אַז. אַזוי שורה איינער. מיר האָבן ינט רענטגענ יקוואַלז 1. אַז ס דער בלויז זאַך אַז ס געטראפן. אזוי בייַ שורה איינער, מיר זען אין אונדזער טיש, וואס י, אַ, b, און טמפּ אלע בלאַקט אויס. אזוי וואָס איז רענטגענ? נו מיר נאָר שטעלן עס גלייַך צו 1. און דעריבער שורה צוויי, נו, מיר זען אַז י איז באַשטימט צו 2, און דער טיש איז שוין אָנגעפילט אין פֿאַר אונדז. אַזוי רענטגענ איז 1 און י איז 2. איצט, שורה דרייַ, מיר ניטאָ איצט ין די ויסבייַטן פונקציאָנירן. וואס האט מיר פאָרן צו ויסבייַטן? מיר דורכגעגאנגען אַמפּערסאַנד רענטגענ פֿאַר אַ, און אַמפּערסאַנד י פֿאַר ב. ווו די פּראָבלעם פריער סטייטיד אַז די אַדרעס פון רענטגענ איז 0קס10, און די אַדרעס פון י איז 0קס14. אזוי אַ און ב זענען גלייַך צו 0קס10 און 0קס14, ריספּעקטיוולי. איצט בייַ שורה דרייַ, וואָס זענען רענטגענ און י? נו, גאָרנישט האט געביטן וועגן רענטגענ און י בייַ דעם פונט. אפילו כאָטש זיי רע ין אַ הויפּט אָנלייגן ראַם, זיי נאָך האָבן די זעלבע וואַלועס זיי האבן פריער. מיר האָבן ניט געווארן מאדיפיצירט קיין זכּרון. אַזוי רענטגענ איז 1, י איז 2. אַלע רעכט. אזוי איצט מיר האט ינט טמפּ גלייַך צו שטערן אַ. אזוי בייַ שורה פיר, אַלץ איז די זעלבע חוץ פֿאַר טמפּ. מיר האָבן ניט פארענדערט קיין וואַלועס פון עפּעס אַחוץ פֿאַר טמפּ. מיר זענען באַשטעטיקן טמפּ גלייַך צו שטערן אַ. וואָס איז שטערן אַ? נו, אַ פונקטן צו X, אַזוי שטערן אַ איז געגאנגען צו גלייַך רענטגענ, וואָס איז 1. אַזוי אַלץ איז קאַפּיד אַראָפּ, און טמפּ איז באַשטימט צו 1. איצט דער ווייַטער שורה. שטערן אַ יקוואַלז שטערן ב. אַזוי דורך שורה פיווע-- געזונט ווידער, אַלץ איז די זעלבע חוץ וועלכער שטערן אַ איז. וואָס איז שטערן אַ? נו, מיר נאָר האט שטערן אַ איז רענטגענ. אזוי מיר רע טשאַנגינג רענטגענ צו גלייַך שטערן ב. וואָס איז שטערן ב? י. ב ווייזט צו י. אזוי שטערן ב איז י. אזוי מיר רע באַשטעטיקן רענטגענ גלייַך צו י, און אַלץ אַנדערש איז די זעלבע. אזוי מיר זען אין דער ווייַטער רודערן אַז רענטגענ איז איצט 2, און די מנוחה זענען נאָר קאַפּיד אַראָפּ. איצט אין דער ווייַטער שורה, שטערן ב יקוואַלז טמפּ. נו, מיר נאָר האט שטערן ב איז י, אַזוי מיר רע באַשטעטיקן י גלייַך צו טמפּ. אלץ אַנדערש איז די זעלבע, אַזוי אַלץ געץ קאַפּיד אַראָפּ. מיר ניטאָ באַשטעטיקן י גלייַך צו טמפּ, וואָס איז איינער, און אַלץ אַנדערש איז די זעלבע. איצט לעסאָף, שורה זיבן. מיר ניטאָ צוריק אין די הויפּט פֿונקציע. מיר ניטאָ נאָך ויסבייַטן איז פאַרטיק. מיר האָבן פאַרפאַלן אַ, b, און טמפּ, אָבער לעסאָף מיר זענען נישט טשאַנגינג קיין וואַלועס פון עפּעס בייַ דעם פונט, מיר נאָר נאָכמאַכן רענטגענ און י אַראָפּ. און מיר זען אַז רענטגענ און י זענען איצט 2 און 1 אַנשטאָט פון 1 און 2. די ויסבייַטן האט הצלחה עקסאַקיוטאַד. פראגע 28. רעכן אַז איר טרעפן דער טעות אַרטיקלען ונטער בעשאַס אָפיס שעה ווייַטער יאָר ווי אַ CA אָדער טף. רעקאָמענדירן ווי צו פאַרריכטן יעדער פון די ערראָרס. אזוי ונדעפינעד דערמאָנען צו געצטרינג. פארוואס זאל איר זען דעם? נו, אויב אַ תּלמיד איז ניצן געצטרינג אין זייער קאָד, זיי האָבן רעכט האַש אַרייַנגערעכנט קס50 פּינטעלע ה צו אַרייַננעמען די קס50 ביבליאָטעק. נו, וואָס טוט זיי דאַרפֿן צו פאַרריכטן דעם טעות? זיי דאַרפֿן צו טאָן אַ לאָך לקס50 בייַ די באַפֿעל שורה ווען זיי ניטאָ קאַמפּיילינג. אַזוי אויב זיי טאָן ניט אַריבערגיין קלאַנג דאַש לקס50, זיי ניטאָ ניט געגאנגען צו האָבן די פאַקטיש קאָד אַז ימפּלאַמאַנץ געצטרינג. פראגע 29. ימפּליסאַטלי דיקלערינג ביבליאָטעק פונקציאָנירן סטרלען. גוט דעם איצט, זיי האָבן נישט געטאן די געהעריק האַש אַרייַננעמען. אין דעם באַזונדער פאַל, די קאָפּצעטל טעקע זיי דאַרפֿן צו אַרייַננעמען איז שטריקל פּינטעלע ה, און אַרייַנגערעכנט שטריקל פּינטעלע ה, איצט די סטודענט-- איצט דער קאַמפּיילער האט צוטריט צו די דעקלעריישאַנז פון סטרלען, און עס ווייסט אַז דיין קאָד איז ניצן סטרלען ריכטיק. פראגע 30. מער פּראָצענט קאַנווערזשאַנז ווי דאַטן טענות. אזוי וואָס איז דעם? גוט געדענקען אַז די פּראָצענט סיגנס-- ווי זיי ניטאָ באַטייַטיק צו פּרינטף. אזוי אין פּרינטף מיר זאלן פּערסענט-- מיר זאל דרוקן עפּעס ווי פּראָצענט איך באַקסלאַש N. אָדער מיר זאל דרוקן ווי פּראָצענט איך, אָרט, פּראָצענט איך, פּלאַץ, פּראָצענט איך. אַזוי פֿאַר יעדער פון די פּראָצענט וואונדער, מיר דאַרפֿן צו פאָרן אַ בייַטעוודיק בייַ די סוף פון פּרינטף. אזוי אויב מיר זאָגן פּרינטף פּאַרען פּראָצענט איך באַקסלאַש N נאָענט פּאַרען, נו, מיר זאָגן אַז מיר רע געגאנגען צו דרוקן אַ ינטאַדזשער, אָבער דעמאָלט מיר טאָן ניט פאָרן פּרינטף אַ ינטעגער צו פאקטיש דרוקן. אזוי דאָ מער פּראָצענט קאַנווערזשאַנז ווי דאַטן טענות? אַז ס געזאגט אַז מיר האָבן אַ גאַנץ בינטל פון פּערסענץ, און מיר טאָן ניט האָבן גענוג וועריאַבאַלז צו פאקטיש פּלאָמבירן אין די פּערסענץ. און דעריבער באשטימט, פֿאַר קשיא 31, באשטימט פאַרפאַלן 40 ביטעס אין איין בלאַקס. אַזוי דעם איז אַ וואַלגרינד טעות. דעם איז געזאגט אַז ערגעץ אין דיין קאָד, איר האָבן אַן אַלאַקיישאַן אַז איז 40 ביטעס גרויס אַזוי איר מאַללאָסעד 40 ביטעס, און איר קיינמאָל באפרייט עס. רובֿ מסתּמא איר נאָר דאַרפֿן צו געפינען עטלעכע זכּרון רינען, און געפינען ווו איר דאַרפֿן צו פֿרייַ דעם בלאָק פון זכּרון. און קשיא 32, פאַרקריפּלט שרייַבן פון גרייס 4. ווידער דעם איז אַ וואַלגרינד טעות. דאס טוט נישט האָבן צו טאָן מיט זיקאָרן ליקס איצט. דאס איז, רובֿ ליקעלי-- איך מיינען, עס ס עטלעכע סאָרט פון פאַרקריפּלט זיקאָרן רעכט. און רובֿ מסתּמא דעם איז עטלעכע סאָרט פון באַפער לויפן. ווו איר האָבן אַ מענגע, אפֿשר אַן ינטעגער מענגע, און לאָזן 'ס זאָגן עס ס פון גרייס 5, און איר פּרובירן צו פאַרבינדן מענגע קלאַמער 5. אַזוי אויב איר פּרובירן צו שרייַבן צו אַז ווערט, אַז ס ניט אַ שטיק פון זכּרון וואָס איר אַקטשאַוואַלי האָבן צוטריט צו, און אַזוי איר ניטאָ געגאנגען צו באַקומען דעם טעות, געזאגט פאַרקריפּלט שרייַבן פון גרייס 4. וואַלגרינד איז געגאנגען צו דערקענען איר ניטאָ טריינג צו פאַרבינדן זיקאָרן ינאַפּראַפּריאַטלי. און אַז ס עס פֿאַר קוויז0. איך בין ראָב באָוודען, און דאָס איז קס50.