רעדנער 1: זאל ס רעדן וועגן וואַסער. אין דעם פּראָבלעם, מיר פרעגן די באַניצער צו דערציילן אונדז ווי לאַנג אין מינוטן זייער שפּריץ איז געווען און דעמאָלט מיר רעכענען די עקוויוואַלענט נומער פון לאגלען פון וואַסער אַז זייער שפּריץ געניצט. אזוי וואָס זענען אונדזער צו-טאָן ס פֿאַר דעם פּראָבלעם? ערשטער, מיר רע געגאנגען צו ווילן צו פּינטלעך און דעמאָלט וואַלאַדייט די ינפּוט אַז דער באַניצער גיט אונדז. אַמאָל מיר ענשור אַז מיר האָבן גילטיק באַניצער ינפּוט, מיר רע געגאנגען צו רעכענען די עקוויוואַלענט נומער פון לאגלען פון וואַסער אַז דער באַניצער האט בעשאַס זייער שפּריץ, און דעמאָלט מיר רע געגאנגען צו זאָגן זיי דורך דרוקן אויס אַז נומער. אזוי לאָזן 'ס מאַכנ אונדזער ערשטער אַרבעט, פּראַמפּטינג און וואַלאַדייטינג דער באַניצער ינפּוט. פֿאַר דעם מיר ווע געשריבן אַ פֿונקציע פֿאַר איר גערופֿן געט_ינט ליגן אין די קס50 ביבליאָטעק. געט_ינט ינשורז אַז דער באַניצער ינפּוץ אַ ינטאַדזשער, אַזוי קיין positive נומערן, נעגאַטיוו נומערן, אָדער נול זענען אַלע אנגענומען. אבער אויב דער באַניצער ינפּוץ עפּעס אַנדערש, אַזוי קיין קאָמבינאַציע פון ​​אותיות אָדער נומערן אָדער דעצימאַל נומערן, דעמאָלט דער באַניצער וועט זיין פּראַמפּטיד צו ריטריי און די פֿונקציע וועט ניט אָננעמען עפּעס ביז דער באַניצער גיט זיי אַ ינטאַדזשער. אזוי ווי טאָן מיר נוצן געט_ינט? אויב איר עפענען אייער וואָרקספּאַסע און שאַפֿן אַ טעקע געהייסן ינטעגער.ק לאָזן ס טיפּ די ווייַטערדיק. האַשטאַג אַרייַננעמען קס50.ה. דאס איז נייטיק ווייַל געט_ינט איז אַ קס50 ביבליאָטעק פֿונקציע, אַזוי מיר מוזן האַשטאַג אַרייַננעמען זייַן דעקלאַראַציע אין סדר צו נוצן די פֿונקציע. און דעמאָלט אין מיין הויפּט פֿונקציע איך בין נאָר געגאנגען צו נאָר רופן די פֿונקציע געט_ינט. אַזוי לאָזן ס לויפן דעם און זען ווי עס אַרבעט. איך ווע שוין קאָמפּילעד עס, אַזוי לאָזן ס נאָר גיין פאָרויס און לויפן דעם פּראָגראַם, ./ינטעגער. דאָ איך האָבן אַ פּינטלעך און דאָ ס ווו איך ינפּוט די ווערט. זאָגן איך שטעלן אין נאָר עטלעכע ינטאַדזשער, 50, די פּראָגראַם עקססעפּץ און קוויט און אַז ס וואָס. אבער זאָגן איך לויפן עס ווידער און איך ינפּוט עפּעס אַנדערש. טאָמער, העלא וועלט. אַז ס 'נישט אַ ינטאַדזשער אַזוי די פּראָגראַם וועט פּינטלעך מיר צו ריטריי. זאל ס פּרובירן ווידער מיט טאָמער אַ דעצימאַל דעם מאָל. 0.5, ווידער, נישט אַ ינטאַדזשער אַזוי די פּראָגראַם וועט ניט אָננעמען עס און עס וועט זאָגן מיר צו ריטריי. אזוי לאָזן 'ס געבן עס אנדערן נומער. דער פּראָגראַם אַקסעפּץ עס, קוויט, און מיר ניטאָ געטאן. אַזוי איצט מיר האָבן אַ פֿונקציע אַז אַלאַוז אונדז און ינשורז אַז דער באַניצער ינפּוץ אַ ינטאַדזשער, אָבער ווי קענען מיר אַקטשאַוואַלי האַלטן שפּור פון די ינטעגער ינפּוטטעד דורך די באַניצער? נו, אַלע מיר וועט טאָן איז קראָם דעם ווערט אין אַ בייַטעוודיק, זאָגן ן. אַזוי אויב איך דערקלערן אַ ינטאַדזשער ן, און איך שטעלן וואָס ווערט צו געט_ינט, דעמאָלט N וועט דעמאָלט קראָם וועלכער ווערט דער באַניצער ינפּוטטעד. אַלע רעכט, אַזוי איצט מיר ווע ענשורד אַז דער באַניצער וועט געבן אונדז אַ ינטאַדזשער און מיר וויסן ווי צו האַלטן שפּור פון די ינטעגער, אָבער געדענקען, ינטאַדזשערז זענען ביידע positive און נעגאַטיוו. אַזוי עס טוט נישט טאַקע מאַכן חוש אין דעם קאָנטעקסט פון דעם פּראָבלעם אַז דער באַניצער נעמט אַ שפּריץ פון זאָגן נעגאַטיוו 12 מינוט. אַזוי מיר דאַרפֿן צו מאַכן זיכער אַז דער באַניצער אַקשלי גיט אונדז אַ positive ינטאַדזשער. איצט מיר טאָן ניט האָבן נאָר אַ איין פֿונקציע פֿאַר וואָס, אַזוי מיר רע געגאנגען צו האָבן צו מאַכן אַז זיך. אַזוי מיר ווילן צו תמיד פּינטלעך דער באַניצער ביז זיי געבן אונדז אַ positive ינטאַדזשער. אויב איך בין טאן עפּעס כּסדר דעמאָלט אַז ס 'קרויוויש צו אַ שלייף, אַ יבערכאַזערונג. אַזוי איינער פון די קאַנסטראַקץ אַז מיר נוצן אין C צו ינסטרומענט יבערכאַזערונג און לופּס איז אַ בשעת שלייף. אזוי אַ בשעת שלייף, ווי געוויזן דאָ, וועט ויספירן וועלכער איז אין די גוף פון די שלייף ווי לאַנג ווי די געגעבן צושטאַנד יוואַליוייץ צו אמת. ווי באַלד ווי אַז צושטאַנד יוואַליוייץ צו פאַלש, דעמאָלט די פּראָגראַם וועט גיינ ווייַטער צו וועלכער קומט נאָך דעם גוף פון די שלייף. אַזוי בשעת לופּס זענען געגאנגען צו זייַן טאַקע נוצלעך אין קס50. אבער אין דעם באַזונדער פאַל, מיר וויסן אַז מיר 'רע געגאנגען צו פּינטלעך דער באַניצער לפּחות אַמאָל און דעריבער בלויז שלייף אויב נייטיק. אזוי דאָ מיר קומען צו אַ ספּעציעל בויען און אַז ס זייער ענלעך צו די בשעת שלייף גערופֿן אַ טאָן-בשעת שלייף. אזוי אַ טאָן-בשעת שלייף עקסאַקיוץ די גוף פון די שלייף אין מינדסטער אַמאָל און דעמאָלט עס טשעקס צו זען צי עס זאָל ויספירן, ווי קעגן צו אַ בשעת שלייף, וואָס וועט טשעק די צושטאַנד און דעמאָלט ויספירן די גוף. אַזוי אין אַ טאָן-בשעת שלייף וואָס מיר זאלן טאָן איז פּינטלעך דער באַניצער פֿאַר אַ ינטאַדזשער, און דעמאָלט טשעק אויב עס ס פאַרקריפּלט אָדער ניט. אויב עס ס פאַרקריפּלט, דעמאָלט מיר וועט איבערחזרן דעם פּראָצעס אַסקינג די באַניצער צו געבן אונדז אן אנדער ינטעגער, און דעמאָלט נאָר ווען אַז ינטעגער איז גילטיק, מיר וועט פאָרזעצן צו וועלכער קומט דערנאָכדעם. איצט איר וועט באַמערקן אַז די דעקלאַראַציע פון ​​די ינטעגער N איז אַ ביסל אַנדערש צו וואָס מיר האט איידער אין די פֿריִערדיקע בייַשפּיל און דעם איז ווייַל פון פאַרנעם. אויב מיר האט דערקלערט די ינטאַדזשער N ין פון די גוף פון די טאָן-בשעת שלייף, דעמאָלט מיר וואָלט נישט זייַן ביכולת צו צוטריט אַז ווערט פון N אַרויס פון יענע געגרייַזלט ברייסאַז ינדאַקייטינג די גוף פון די שלייף. אבער מיר טאָן אין פאַקט ווילן צו צוטריט די ווערט פון N שפּעטער אויף אין אונדזער פּראָגראַם. גוט, אַזוי איצט לאָזן ס רעדן וועגן וואָס דעם צושטאַנד זאָל זיין. מיר ווילן צו בלויז רעפּראָמפּט די באַניצער ווי לאַנג ווי N איז פאַרקריפּלט. אַזוי טראַכטן צו זיך וואָס אַ פאַרקריפּלט ינטאַדזשער ווערט וואָלט קוק ווי און דעריבער מאַכן אַ באָאָלעאַן אויסדרוק צו אויסדריקן אַז. מיר 'רע כּמעט פאַרטיק מיט אונדזער סובטאַסק פון פּראַמפּטינג און וואַלאַדייטינג באַניצער ינפּוט. אזוי לאָזן ס מאַכן דעם אַ ביסל ביסל מער באַניצער פרייַנדלעך און געבן די באַניצער אַ ביסל ביסל מער אינפֿאָרמאַציע פון וואָס מיר ניטאָ פּראַמפּטינג זיי פֿאַר. אזוי לאָזן 'ס פּינטלעך דער באַניצער, פּער די ספּעק, מיט די שטריקל מינוט. אַזוי ניצן אייער פּרינטף סטייטמאַנץ, מאַכן זיכער אַז איר גלייַכן דעם פּונקט. אלעס אין ארדענונג. אַזוי איצט מיר האָבן אַ גילטיק באַניצער ינפּוט, אַ positive ינטאַדזשער ווערט פֿאַר ווי פילע מינוט זיי אויסגעגעבן אין די רעגנדל. אַזוי וואָס ס ווייַטער איז צו רעכענען דער עקוויוואַלענט נומער פון לאגלען. וואָס מיר רע געגאנגען צו טאָן דאָ זאל זייַן זייער קלאָר ווי דער טאָג צו איר בייַ ערשטער, און אַז ס 'גוט. וואָס מיר ווילן צו טאָן איז מיר ווילן צו אָנהייבן פּראַקטיסינג דער געדאַנק פון דיטעקטינג פּאַטערנז און דעוועלאָפּינג פאָרמולאַס פֿאַר דעם פּראָבלעם. אזוי מיר ניטאָ דערציילט פּער די ספּעק אַז איין מינוט אין דער שפּריץ איז עקוויוואַלענט צו וועגן 12 לאגלען פון וואַסער. דעריבער צוויי מינוט וואָלט זייַן עקוויוואַלענט צו 24, און פינף מינוט וואָלט זייַן עקוויוואַלענט צו 60. אַזוי איצט אויב איר טראַכטן איר ווע גאַט עס, דעריבער לאָזן ס זען אויב איר קענען קומען אַרויף מיט אַ מוסטער אָדער פאָרמולע צו אויסדריקן אויב מיר האָבן זאָגן, ן מינוט, ווי פילע לאגלען פון וואַסער וואָלט אַז זיין אויסגעדריקט אין טערמינען פון N? ווידער, אַפֿילו כאָטש דעם זאל זיין פּשוט בייַ ערשטער, שפּעטער אויף ווען מיר באַקומען צו מער קאָמפּליצירט פּראָבלעמס מיר רע געגאנגען צו ווילן צו באַקומען אין די פיר פון ידענטיפיינג פּאַטערנז און דעוועלאָפּינג פאָרמולאַס צו רעכענען די זאכן אויס. אין C איר האָבן צוטריט צו נאָרמאַל אַריטמעטיק אַפּעריישאַנז, דערצו, כיסער, קייפל, און אָפּטייל. אַזוי איך וועט לאָזן עס צו איר איצט צו רעכענען אויס ווי צו אויסדריקן די עקוויוואַלענט נומער פון לאגלען אַז דער באַניצער קאַנסומד בעשאַס זייער שפּריץ. אַלע רעכט, מיר ניטאָ כּמעט געטאן. מיר 'ווע פּראַמפּטיד די באַניצער פֿאַר זייער ינפּוט, מיר 'ווע ענשורד אַז עס ס גילטיק ינפּוט, און דעמאָלט מיר ווע פיגורעד אויס ווי צו רעכענען די עקוויוואַלענט נומער פון לאגלען אַז זיי קאַנסומד. אַזוי די לעצטע זאַך צו טאָן איז צו רעזולטאַט דער עקוויוואַלענט נומער פון לאגלען און אַלעווייַ מוטיקן זיי צו קאַנסערוו עטלעכע וואַסער. אָוטפּוטטינג די ווערט וועט זייַן אַ פּרינטף סטאַטעמענט. אויב איך געוואלט צו זאָגן איר, אז איך האָבן דרייַ פּעץ, א שטייגער, איך זאל נוצן אַ פּרינטף סטאַטעמענט וואָס קוקט עפּעס ווי דעם. איך האָבן דרייַ פּעץ, און אַ נייַ שורה פֿאַר פייַן formatting. איצט מיר טאָן ניט ווילן צו נאָר שווער קאָד זאכן. זאָגן די נומער פון מיין פּעץ ענדערונגען איבער צייַט. דעמאָלט איך בין געגאנגען צו מאַכן נוצן פון פּלאַסעהאָלדערס אין מיין פּרינטף סטאַטעמענט. אזוי דאָ מיין נומער איז אַ ינטעגער. אַזוי איך בין געגאנגען צו מאַכן אַ פּלאַסעהאָלדער פֿאַר אַ ינטאַדזשער ניצן% איך. איך בין געגאנגען צו שרייַבן די שטריקל, און דעמאָלט נאָך די שטריקל איך שרייַבן אַ קאָמע און דעריבער די בייַטעוודיק אַז איך ווילן צו דרוקן. אַזוי אַז ווערט וועט זיין געדרוקט אין לו פון אַז פּלאַסעהאָלדער,% איך. איר קענען נוצן פּלאַסעהאָלדערס, ווי געזונט, פֿאַר פלאָאַץ מיט אַ% ו. איר קענען אויך האָבן קייפל פּלאַסעהאָלדערס אין אַ שטריקל. פֿאַר בייַשפּיל, אויב איך האָבן עטלעכע נומער פון הינט און עטלעכע נומער פון קאַץ, איך שטעלן צוויי פּלאַסעהאָלדערס דאָ און דעמאָלט מיין צוויי וועריאַבאַלז אין ריספּעקטיוו סדר. אַזוי איצט אַז מיר וויסן ווי צו דרוקן די וואַלועס סטאָרד אין וועריאַבאַלז, די זייער לעצט זאַך צו טאָן איז צו ענשור אַז מיר דרוק די ווערט אין די פּינטלעך פֿאָרמאַט אנגעוויזן אין די באַשרייַבונג. מיט וואָס, מיר 'ווע פּראַמפּטיד די באַניצער און וואַלאַדייטאַד זייער ינפּוט. מיר 'ווע דעמאָלט קאַלקיאַלייטיד דער עקוויוואַלענט נומער פון לאגלען פון וואַסער אַז זיי פאַרנוצן בעשאַס זייער שפּריץ, און מיר ווע אָוטפּוטטעד אַז ווערט צו זיי. און אַזוי, מיר 'ווע געענדיקט וואַסער. מיין נאמען איז [? זאַמילאַ,?] און דאָס איז קס50.