יום רביעי, 14 במרץ 2018

חידה: מיון ספרות של מספר שלם



לפניך חידה: כתוב פונקציה אשר מקבלת מספר ומחזירה מספר המורכב מאותן ספרות אך בסדר יורד.

לדוגמה:
עבור המספר 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));
}



או כאן



בהצלחה!

אין תגובות:

הוסף רשומת תגובה