מספר ארמסטרונג בפייתון - רשתות ואינטרנט - HWzone פורומים
עבור לתוכן
  • צור חשבון

מספר ארמסטרונג בפייתון


habis
 Share

Recommended Posts

 

אנא המשך לקרוא תחילה אם אתה מאמין שהשאלה הזו כבר הועלתה.

 

אני צריך להדפיס את כל המספרים של ארמסטרונג שנעים בין 1 ל-10000. הבעיה שלי היא שכשהתוכנית שלי פועלת ומגיעה ל-150, היא לא עושה כלום.

(1^3) + ((5^3)-1) + (0^3)

 

במקום

 

(1^3) + (5^3) + (0^3).

 

 

 

כתוצאה מכך, הוא לא מדפיס 153 (מספר ארמסטרונג), כי הסכום הוא 152. לפי הדוח הזה, אני לא בטוח אם מספרים אחרים עושים את אותו הדבר. אבל בדקתי עד 200 ואין שום בעיה עם מספרים אחרים מלבד אלו באזור 150-160.

 

האם זה באג מהדר? האם יש צורך להתקין מחדש את המהדר שלי? כרגע אני משתמש בחסימות קוד.

 

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    for(int i = 0;i <= 10000;++i)
    {
        int r = i;
        int dig = 0;
        while(r != 0)
        {
            dig++;
            r /= 10;
        }
        int n = i, sum = 0;
        while(n != 0)
        {
            int d = n % 10;
            sum += pow(d, dig);
            n /= 10;
        }
        if(sum == i)
            cout << i << ' ';
    }
    cout << "\n\n\n";
    return 0;
}

 

 

 

 

קישור לתוכן
שתף באתרים אחרים

אתה שואל על פייתון אבל מביא תוכנית ב-C++...

 

בכל מקרה הסיכוי שעם תוכנית כל כך פשוטה עלית על בעיה בקומפיילר (באיזה בכלל השתמשת?) היא כמו הסיכוי לזכות בלוטו, זה לא הכיוון ואתה תמיד יכול לנסות קומפיילר אחר ולראות אם אתה מקבל את אותה תוצאה.

 

לדעתי הבעיה נובעת מהשימוש בפונקציית POW שהקלט והפלט שלה הוא מסוג double ואתה משתמש ב-int.

יש פה הסבר שלם על הבעיה תחת הכותרת "Working of pow() function with integers"

https://www.geeksforgeeks.org/power-function-cc/

נערך על-ידי etal
קישור לתוכן
שתף באתרים אחרים

הצטרפ/י לדיון

בשלב זה תוכל/י להצטרף לדיון, ולאחר מכן להצטרף לקהילה שלנו. אם כבר יש לך חשבון אצלנו, אנא התחבר/י עכשיו על מנת להגיב תחת שם המשתמש שלך.
לתשומת לבך: התגובה תופיע לגולשים לאחר אישור של צוות הנהלת הפורומים.

אורח
הוסף תגובה

×   התוכן שהודבק הוא עם עיצוב.   הסר עיצוב

  Only 75 emoji are allowed.

×   הקישור שלך הוטמע אוטומטית.   הצג כקישור רגיל

×   התוכן הקודם שלך שוחזר אוטומטית.   נקה הכל

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
  • צור חדש...