עבור לתוכן

שאלה קצת מאתגרת ב-C

Featured Replies

פורסם

ראיתי שמישהו פה כבר ביקש לפרסם שאלות שקוראים אחרים יכולים ללמוד מהם

אז בבקשה שאלה לא הכי פשוטה בC (משיעורי הבית שלי :\)

Write a program that reads an arbitrarily long string of '0's and '1's, interprets it as a binary number,

and prints the number in base 10 format. you may assume that the string is at most 1000 characters

(binary digits) long.

אשמח לראות מימושים אם למישהו יש כוח לכתוב

או רעיונות כלליים.

אם תרצו רעיון תבקשו....

פורסם

כמו שנהוג לומר באקדמיה - זה טריויאלי ;-)

רעיון:

number=0
exp=1

while still reading string
bit=read_one_zero()
number=number*exp+bit
exp=exp*2

print(number)

פורסם
  • מחבר

זה לא עד כדי כך טריויאלי

int לא יכול להחזיק מספר כמו

2^1000

אפילו לא קרוב....

זה הפואנטה בשאלה

פורסם

תבנה פונקציה שסופרת כמה איברים יש בסטרינג או לחילופין תתחיל מהתו האחרון בסטרינג. אם אתה מתחיל מהתו האחרון אז הפקטור שלך צריך להיות בהתחלה 1 וכל צעד להכפיל אותו ב-2. אתה יכול לשמור את התוצאה במשתנה מסוג floatאו לחילופין ב-double.

בכדי למצוא את סוף המחרוזת אתה צריך לבנות פונקציה פשוטה

int function count(int *)

{

int counter=0;

while (string!='\o'){

counter++;

string++;

}

return(counter);

וזה מספר האיברים בסטרינג.

עכשיו אתה יכול להחיל מהאיבר הראשון בסטרינג [[0]] והפקטור שלך צריך להתחיל מ-2^counter ואתה מחבר לסכום שלך:

sum=sum+factor*string;

factor=factor/2;

פורסם

תממש מבנה נתונים (ברשימה מקושרת, או משהו) שמכיל ספרות בבסיס 10 ומוגדרות עליו הפעולות הבאות:

1) חיבור שני "מספרים"

2) חיסור כפל שני "מספרים"

3) כפל "מספר" ב2-

ותממש אל האלגוריתם שנתתי באמצעות מבנה הנתונים.

האלגוריתם שנתתי מתעלם לחלוטין מהמימוש של פעולות על מספרים וייצוגם במחשב. לא כתבתי בשום מקום שאני משתמש ב-int.

ד"א... יש כאם עוד סטודנטים למדעי המחשב חוץ ממנו? :o

  • 2 שבועות מאוחר יותר...
פורסם

אני סטודנט למתמטיקה ומדעי מחשב (דו-חוגי) באוניברסיטת ת"א...

פורסם

איזו שנה?

  • 2 שבועות מאוחר יותר...
פורסם

אני סטודנט למתמטיקה ומדעי מחשב (דו-חוגי) באוניברסיטת ת"א...

ומה שלום מר אפשטיין?

או שלמדת חדו"א עם שוס (אמא'לה)

פורסם

אני לומד במעמד מיוחד (אני לומד במקבלי גם בבי"ס, כי כרגע אני בן 16 פחות חודשיים), ככה שקצת קשה להגיד באיזו שנה אני, אבל כבר סיימתי כמעט 2/3 מהתואר, הרוב בינתיים זה קורסים במתמטיקה...

למדתי חדו"א עם סודין...

למה? גם אתה לומד באונ' ת"א?

פורסם

תממש מבנה נתונים (ברשימה מקושרת, או משהו) שמכיל ספרות בבסיס 10 ומוגדרות עליו הפעולות הבאות:

1) חיבור שני "מספרים"

2) חיסור כפל שני "מספרים"

3) כפל "מספר" ב2-

ותממש אל האלגוריתם שנתתי באמצעות מבנה הנתונים.

האלגוריתם שנתתי מתעלם לחלוטין מהמימוש של פעולות על מספרים וייצוגם במחשב. לא כתבתי בשום מקום שאני משתמש ב-int.

ד"א... יש כאם עוד סטודנטים למדעי המחשב חוץ ממנו? :o

הנסדת מחשבים

טכניון

סמסטר 4

פורסם

אני לומד במעמד מיוחד (אני לומד במקבלי גם בבי"ס, כי כרגע אני בן 16 פחות חודשיים), ככה שקצת קשה להגיד באיזו שנה אני, אבל כבר סיימתי כמעט 2/3 מהתואר, הרוב בינתיים זה קורסים במתמטיקה...

למדתי חדו"א עם סודין...

למה? גם אתה לומד באונ' ת"א?

סיימתי....

לא מכיר את סודין :)

פורסם

אגב, מה הבעיה לשמור את זה במשתנה Long?

פורסם

מה אם המספר שלי יותר גדול מ2- בחזקת 200?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים