ABA


"עזרה באלגוריתם פשוט, משהו למתחילים"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10470 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10470
eminem
חבר מתאריך 14.11.03
4348 הודעות, 1 פידבק
   13:57   06.09.11   
אל הפורום  
  עזרה באלגוריתם פשוט, משהו למתחילים  
 
   השאלה הבאה היא ב-C אבל זה לא נראה לי משנה העיקר האלגוריתם
הקושי שלי זה לדעת איך לפרק את המספר ולהחזיר אותו כמספר איך שהם רוצים
נראה לי שאסור לי להשתמש פה במחרוזת לכן איך יהיה לי גישה לספרות אחד אחד?
חשבתי על div ו-mod אבל זה לא מסתדר לי בראש

אם מישהו יכול לתת לי כיוון אני אשמח
תודה


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אם אסור להשתמש במחרוזות Net_Boy  06.09.11 15:56 1
     מותר להשתמש בין לבין במחרוזות אבל eminem 06.09.11 16:10 2
         בכל מקרה הפתרון שהבאתי פה הוא בלתי תלוי במחרוזות... Net_Boy  06.09.11 17:03 3
  אין פה צורך ביותר מ2 משתנים, זו התבנית פחות או יותר: חומוס 06.09.11 17:13 4
  מודולו 10.. Yariv-H 07.09.11 11:32 5

       
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   15:56   06.09.11   
אל הפורום  
  1. אם אסור להשתמש במחרוזות  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 06.09.11 בשעה 16:03 בברכה, Net_Boy
 
תרוץ בלולאה כל עוד המספר שלך שונה מ-0.
תשמור 3 משתנים זמניים:

משתנה שמייצג את מספר הספרות במספר הראשי שלך - נסמן אותו ב count, הוא כמובן מאותחל ל-0 ומקודם בכל איטרציה.
משתנה שמייצג את התת מספר (מאותחל ל-0) - נקרא לו subnum.
משתנה שמייצג את הספרה בכל תת מספר - שיהיה מאותחל ל-1 - נקרא לו index.

ואז בכל פעם אתה עושה את המספר שלך מודולו 10 ובכך מקבל את הספרה האחרונה.

אם הספרה שונה מ-0 :
אתה עושה:
subnum += 10^index*digit
וכך בעצם אתה בונה בהדרגה את התת מספר.

כמובן שאחרי שעשית את זה אתה מקדם את ה-index.

אם הספרה שווה ל-0:
תוודא שבאמת subnum שונה מ-0.

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

בסוף כמובן יש לאפס את subnum ואת ה-index כדי למצוא את המספר הבא.

וכמובן שבכל איטרציה אתה מחלק את המספר הראשי שלך ב10.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
eminem
חבר מתאריך 14.11.03
4348 הודעות, 1 פידבק
   16:10   06.09.11   
אל הפורום  
  2. מותר להשתמש בין לבין במחרוזות אבל  
בתגובה להודעה מספר 1
 
   אני חייב לקלוט מספר ולהחזיר מספר


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   17:03   06.09.11   
אל הפורום  
  3. בכל מקרה הפתרון שהבאתי פה הוא בלתי תלוי במחרוזות...  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
חומוס לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.4.02
13069 הודעות, 5 פידבק
   17:13   06.09.11   
אל הפורום  
  4. אין פה צורך ביותר מ2 משתנים, זו התבנית פחות או יותר:  
בתגובה להודעה מספר 0
 
ערכתי לאחרונה בתאריך 06.09.11 בשעה 17:20 בברכה, חומוס
 

#include <stdio.h>

#include <stdio.h>

void main()
{
unsigned long ... = 0;
unsigned long ... = 0;
printf("enter number:\n");
scanf ("%llu", &...);

while (....)
{
... = ... * 10;

if (...)
{
... = ... + (... % 10);
}

... = ... / 10;
}

printf ("the final number is: %d",....);

// זו סתם שורה כדי שהתכנית לא תסגר
scanf("%llu",&...);
}

מקווה שלא חשפתי יותר מדי

אם אתה עדיין מסתבך אז תשאל


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yariv-H לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
5856 הודעות, 1 פידבק
   11:32   07.09.11   
אל הפורום  
  5. מודולו 10..  
בתגובה להודעה מספר 0
 
   קח את המספר , מודולו 10 , אם התוצאה שונה מ 0 שמור אותה משתנה אחר .
כול עוד לא סיימת עם המספר והספרה הבאה לא 0 , תכפול את התוצאה שלך ב 10
ותמשיך עם המודולו ( כמובן שאת התוצאה אתה מחבר למספר השכפלת ב 10)
אם הסיפרה היא 0 , ולא סיימת את המספר תכפול את התוצאה ב 10 ותמשיך הלאה.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net