שאלת חילוק ללא שימוש באופרטורים % \ בשפת C - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שאלת חילוק ללא שימוש באופרטורים % \ בשפת C


efod26

Recommended Posts

אם היית מציין שפה שבא אתה כותב היה לנו יותר נוח לענות.

בכל מקרה ב C++ יש את pow שאני מאמין שמקבל גם מספר שלילי וגם שברים.

ב JAVA אם אני לא טועה יש את Math.Pow

שפות אחרות אני לא מכיר.

בכל המקרה החלוקה היא על כל מספר? כי אם זה רק חלוקה ב 2 אפשר להשתמש ב BITWISE SHIFT.

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

אתה רוצה להחליף את / ?

אם כן אז תשתמש בחיסור + רקרוסיה.

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

עכשיו כדאי שתשתמש בערכים המוחלטים , ואת הסימן של התוצאה תקבע מראש לפי הסימנים של המשתנים

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

efod26, שנה בבקשה את הכותרת כך שתכיל את תמצית השאלה, והשפה בה אתה מתכנת.

בכל מקרה, תן עוד קצת פרטים - אתה צריך להיות מסוגל לחלק רק שלם בשלם או גם ממשי בממשי? התוצאה צריכה להיות ממשית או רק שלמה?

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

בעצם אפשר לוותר על רקרוסיה

הינה זאת פונקציה שעושה / למספרים שלמים ומחזירה ערך שלם (רק4 צריך לבדוק חלוקה ב0.

זה בשפת C++.

int chilouk (int a, int b){
int c = 1;
int d = 0;
if (b == 0 ) return NULL;
if (a == 0 ) return 0;
if (b < 0 ) {
b = 0 - b;
c = 0 - c;
}
if (a < 0 ) {
a = 0 - a;
c = 0 - c;
}
while (a > b) {
++d;
a = a - b;
}
return d*c;
}

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

תמיד אפשר לעשות פעולה מתמטית של X בחזקת y-

נאמר 4 לחלק ב 2 = 4 בחזקת מינוס שתיים = 4 * 1/2 = 2

הפעולה המתמטית היא X כפול Y- (ולא בחזקת...)

[שים לב ש-4 בחזקת מינוס שתיים זה ממש לא 2 אלא 1/16]

בכל מקרה, זה תרגיל נחמד שאפשר לעשות בלולאה (או ברקורסיה) כפי שירח מלא תיאר (מה שנשאר בסוף הלולאה במשתנה a זו השארית).

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

כתבתי את הקוד אבל יש בעיה אני לא מצליח לקלוט גם אפס וגם תו

שאני קולט 0 אני נזרק וזה בסדר זה אחד התנאים לעבודה.

שאני קולט תו אני אמור לחזור חזרה ללולאה ולבקש מס' נוסף

#include<stdio.h>

#include<math.h>

int main()
{
int x = 0 ,y = 0;
double c = 0;

do
{
printf("enter two numbers\n");
if (scanf("%d%d",&x,&y)==2)
{
if((x==0) || (y==0))
break;
c=(double)(x*pow(y,-1));
printf("%.5lf\n",c);
}

else
printf("Error Type Again\n");
fflush(stdin);

}while(c!=0);
return 0;



}

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

אתה צוחק נכון????

אני מקןןה שכן, הכוונה הייתה לא להשתמש במודולו וחילוק ה% זה הסימון לפני הD לאינטג'ר לא פעולת

שארית

ן- \n לרדת שורה אין בעיה איתה רק לא לחלק בעזרת האופרטורים!!!

מישו יכול לעזור בבקשה בשאלה

תודה מראש/

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

מה עדיין לא נתתם את התשובה?

אם רוצים X = Q/D + R: תאפס את X. תעשה לולאה שמפחיתה את D מ-Q ומקדמת את X באחד עד אשר Q<D ואז X הוא תוצאת החילוק, ומה שנשאר ב-Q זה השארית ®.

יותר בסיסי מזה לא יכול להיות.

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

ארכיון

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

×
  • צור חדש...