long func(short x)
{
long res = 0;
static short array[20000];
extern short const_array[20000];
for (int i=19999; i>0; i--)
array[i] = array[i-1];
array[0] = x;
for (int j=0; j<20000; j++)
res += (long)array[j]*const_array[j];
return res;
}
אחד. Cycle ים, וכל פעולה אחרת )+, -, *, = וכו'( לוקחת 'Cycles פעולת גישה למערך לוקחת חמישה
א. מה הפונקציה עושה, ומהו זמן הריצה שלה?
ב. נתונות שתי פעולות חדשות:
.)n ב 1- מודולו i הגדל את ( i = (i+1)%n inc_mod(i,n) .1
.)n ב 1- מודולו i הקטן את ( i = (i-1+n)%n dec_mod(i,n) .2
אחד. מצא דרך לשפר את זמן הריצה של הפונקציה, וחשב אותו מחדש.
הייתי בריאיון אחד - פחות התרשמתי. התמיינתי למשרת גוניור
שאלות מתוך הראיון
1. בהתחלה שאלו אותי שאלות hr - זה היה מוזר. כמו איך אני בצוות? פרוייקטים וכו'
2.1 שאלו אותי שתי שאלות טכניות - חיבור שני מספרים שמיוצגים על ידי רשימה מקושרת (כל מספר מיוצג על ידי רשימה אחרת וצריך לחבר אותם כמו חיבור ארוך).
2.2 שאלה שהתעסקה ברגסיטרים. אמרו לי שיש Z רגיסטרים ואנחנו צריכים לבצע את הפולע הבאה:
C = |A-B| (לבצע השמה לתוך משתנה C של החיסור בערך מוחלט של שני הרכיסטרים A-B.
בשאלה הזאת ניתן לבצע 4 פעולות על הריסטירם (לעלות ב1 את הערך שיש ברגיסטר, להחסיר ב1 את הערך שיש ברגיסטר , לבצע loop במידה והערך המתקבל שונה מ-0 ו-HALT שעוצר את התכנית).
ראש צוות נחמד, השאיר את הטלפון שלו ונתן לי זמן לפתור את השאלות
שאלות מתוך הראיון
בהינתן מחרוזת החזר תת מחרוזת ללא תווים כפולים, למשל 112233 55 יחזיר 1234 5
תשובות
הוסף תשובה
|
לצפיה בתשובות
יוני 2020
void removeDuplicate(char str[]){
int len = strlen(str);
char result[len];
int i, j=-1;
for(i = 0 ; i < len ; i++) if(str[i] != str[i+1]) result[++j]=str[i];
printf("%s\n", result);
}
יולי 2020
זה לא פתרון טוב, אתה ניגש לתא -1
ספטמבר 2020
למה? ++ בפריפיקס דואג שקודם כל נקדם את j ורק אז נחזיר אותו.
מאי 2021
הפתרון טוב רק אם שרשור של מספר כלשהו לא חוזר על עצמו עוד פעם במהלך המחרוזת. למשל בדוגמא 5511225533 הפלט יהיה 51253.
CEVA is a publicly listed semiconductor intellectual property (IP) company, headquartered in Mountain View, California and specializes in DSP processor technology.