double cos(double x) { return 1 + help_cos(x, 2, -1); } double factorial(int x); double pow(int x, int y); double help_cos(double x, long i, short side) { const double bot = 1/1000000; double sum = pow(x, i) / factorial(i); if (sum < 1/bot) return side*sum; return (side*sum + help_cos(x, i*2, -1*side)); }
|
את factorial ו-pow לא בעיה לממש.
אתה צריך לשים לב להדפיס 6 ספרות אחרי הנקודה.
יתכן שיש טעויות איפשהו בקוד כי לא בדקתי אותו, אבל מאמין שתסתדר.
יכול להיות שבתנאי העצירה תצטרך return 0 במקום return side*sum (כי הניסוח לא ברור ב-100%).
בברכה,
עידן