פורסם 2009 בפברואר 2316 שנים #include <stdio.h>int func(int num){ int k = (num == 3); return (k * 7 + !k * 3);}int main(){ printf("%d", func(3)); return 0;}
פורסם 2009 בפברואר 2316 שנים מחבר טעות שלי יש מגבלהאבל אני לא יודע האם המגבלה היא "איפ" או מגבלה של אין תנאי בכללבכל מקרה תודה על 2 התשובותלמדתי מהן!
פורסם 2009 בפברואר 2316 שנים אם אסור להשתמש בתנאי (איפה זה כתוב?) אז אפשר לעשות: return (x*9)%10במקרה של 3 ו-7 זה יעשה את העבודה.
פורסם 2009 בפברואר 2416 שנים מחבר אם אסור להשתמש בתנאי (איפה זה כתוב?) אז אפשר לעשות: return (x*9)%10במקרה של 3 ו-7 זה יעשה את העבודה.איזה מגניבאיך הגעת לפתרון הזה?
פורסם 2009 בפברואר 2416 שנים התחלתי לחשוב אם יש איזשהו קשר מתמטי בין 3 ל-7 שניתן להגיע מאחד לשני. חיבור/חיסור בערך מוחלט לא עבד, אז הלכתי לכיוון של המודולו - פעולה מאוד שימושית במקרים רבים. העובדה שכפל בספרה מסוימת נותן תמיד ספרות ספציפיות היא גם משהו שכדאי לדעת.במקרה הזה הפתרון קפץ לי לראש די מהר.
פורסם 2009 בפברואר 2416 שנים חחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחגאוןלמעשה אפשר להפוך את זה למשהו כלליreturn x+y - a; x,y זה שני המספרים במקרה שלנו 3 ו-7 ו-a זה מה שמובא כפרמטר ואז הוא נחסר ונשאר הגורם השני בחיבור..אגב שיפור ההצעה הקודמת שליint func(int a){ int k = a / 7; return k * 7 + !k * 3;}
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.