לפניך חידה: כתוב פונקציה אשר מקבלת מספר ומחזירה מספר המורכב מאותן ספרות אך בסדר יורד.
לדוגמה:
עבור המספר 23989769
תחזיר 99987632
אסור להשתמש במערך או בכל מבנה נתונים קיים. (למעט משתנים כמובן).
אסור להשתמש בפונקציות מיון קיימות.
אסור לקרוא לאף פונקציה שהיא למעט הפונקציה עצמה.
רק אתם וההבנה שלכם במספרים.
פתרון (בלבן. צריך להדגיש):
#include <stdio.h>
int F(int N){
int d1, d2, temp;
if (N<10) return N;
else
{
d1=N%10;
N=N/10;
N=F(N);
d2=N%10;
if (d1<=d2) return N*10+d1;
else
{
N=((N/10)*100) + (d1*10) + d2;
temp=F(N/10);
return (temp*10) + (N%10);
}
}
}
void main()
{
int n = 23989769;
printf("Fix number: %d\n", F(n));
}
או כאן
בהצלחה!
אין תגובות:
הוסף רשומת תגובה