לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #6  
ישן 17-12-2011, 13:17
צלמית המשתמש של RP.
  משתמש זכר RP. RP. אינו מחובר  
 
חבר מתאריך: 04.11.04
הודעות: 6,986
בתגובה להודעה מספר 1 שנכתבה על ידי Army_Boy שמתחילה ב "תוכנית למציאת פולינדרום במספר"

שעמם לי וזה היה נראה תרגיל חביב
קוד:
#include <stdio.h> #include <stdlib.h> #define MIN(x,y) ((x) <= (y) ? (x) : (y)) int countDigits(int num); int checkPalindromAroundIndex(int num, int index,int len); int findDigitAtIndex(int num,int idx); int _checkPalindromAroundIndex(int num,int index,int dist); void findMaxPalindrom(int num); int main () { int num=1343651567; findMaxPalindrom(num); return 0; } void findMaxPalindrom(int num) { int len=countDigits(num); int maxCount=0; int maxIdx=-1; int idx=0; for (;idx < len ; ++idx) { int res=checkPalindromAroundIndex(num,idx,len); if (res > maxCount) { maxIdx=idx; maxCount=res; } } if (maxCount <= 0) return; printf("\n=======================\n"); for (idx=maxIdx-maxCount ; idx <= maxIdx+maxCount;++idx) printf("%d",findDigitAtIndex(num,idx)); printf("\n=======================\n"); } int findDigitAtIndex(int num,int idx) { int curr=countDigits(num)-1; while (1) { int dig=num%10; if (curr==idx) return dig; num/=10; curr--; } return -1; //Shouldn't happen } int checkPalindromAroundIndex(int num,int index,int len) { int leftSpace=index; int rightSpace=(len - 1) - index; int minSpace=MIN(leftSpace,rightSpace); while (minSpace > 0) { int res=_checkPalindromAroundIndex(num,index,minSpace) ; if (res) return minSpace; minSpace--; } return -1; } int _checkPalindromAroundIndex(int num,int index,int dist) { while (dist > 0) { int digL=findDigitAtIndex(num,index - dist); int digR=findDigitAtIndex(num,index + dist); if (digL!=digR) return 0; dist--; } return 1; } int countDigits(int num) { int count=0; while (num > 0) { num/=10; count++; } return count; }
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #13  
ישן 29-12-2011, 17:26
צלמית המשתמש של פסטן
  פסטן פסטן אינו מחובר  
 
חבר מתאריך: 14.12.09
הודעות: 9,751
בתגובה להודעה מספר 12 שנכתבה על ידי The_Equivocator שמתחילה ב "הממ.. מאחר וC לא תומך בהעמסת..."

לא, כי ה-issue לא היה השימוש באותו identifier לשתי פונקציות שונות, אלא השימוש בפונקציה אחת אך ורק על-מנת לקרוא לפונקציה אחרת ("פונקציה שכל מטרתה לקרוא לפונקציה אחרת"). האמת שזה ניסוח לא לגמרי מדויק, ובעצם מדובר על פונקציה שמתרגמת פרמטרים לפונקציה אחרת.

גם ב-C, נפוץ מאוד לכתוב דבר כזה:
int doSomething(Type[][] arr, size_t i, size_t j, int a, float b, bool c, double d) {
‌ ‎ ‎ ‌ ‎ ‎return doSomethingImpl(arr, i, j, f1(a,b,c), f2(a,b,c,d), f3(c, d, f4(a,c,d)), f5(a,d));
}

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

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 07:06

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר