C語言面試演算法題 二

2021-05-22 23:04:30 字數 1565 閱讀 5759

1.寫乙個函式,它的原形是int continumax(char *outputstr,char *intputstr)

功能: 在字串中找出連續最長的數字串,並把這個串的長度返回,並把這個最長數字串付給其中乙個函式引數outputstr所指記憶體。例如:

"abcd12345ed125ss123456789"的首位址傳給intputstr後,函式將返回9,outputstr所指的值為123456789。

1. #include

2. #include

3. #include

4. 5. int findmax_numstr(char *outputstr,char *inputstr)

6. 19. else

20. in++;

21. if(maxlen < count)

22.27. }

28.29. for(i =0;i30.

35. *out = '\0';

36. return maxlen;

37. }

38.39. void main(void)

40. ;

43. int maxlen;

44. maxlen = findmax_numstr(output,input);

45. printf("the str %s\n",output);

46. printf("the maxlen is %d\n",maxlen);

47. }

複製**

2.求1000!的未尾有幾個0;

求出1->1000裡,能被5整除的數的個數n1,能被25整除的數的個數n2,能被125整除的數的個數n3,能被625整除的數的個數n4.1000!末尾的零的個數=n1+n2+n3+n4;

只要是末尾是5的數它乘以乙個偶數就會出現乙個0,而末尾是0的數乘以任何數也都會出現0

而末尾是0的如果是乙個0肯定能被5整除,兩個0肯定能被25整數,以此類推3個0就能被5的三次方整除,也就是125

1000!就是1-1000數的相乘,能被5整除的所有數分別乘以乙個偶數就會出現這些個的0,而例如100,既能被5整除,也能被25整除,所以就是兩個0

1000,既能被5,25,也能被125整除,所以算三個0

例如是10!=1*2*3*4*5*6*7*8*9*10,裡面有兩個數能被5整除,就是10和5,而5隨便乘以乙個偶數就出現乙個0,而10乘以其它數也會出現乙個0,所以10!會有兩個0

1. #include

2. #define num 1000

3. 4. int find5(int num)

5. 12. return ret;

13. }

14.15. int main(void)

16.複製**

3.編寫乙個 c 函式,該函式在乙個字串中找到可能的最長的子字串,且該字串是由同一字元組成的。

1. char * search(char *cpsource, char ch)

2. 15. ++cpsource;

16. }

17. return cpdest;

18. }

java面試演算法題

1 將一整數逆序後放入一陣列中 要求遞迴實現 2 求高於平均分的學生學號及成績 學號和成績人工輸入 3 遞迴實現回文判斷 如 abcdedbca就是回文,判斷乙個面試者對遞迴理解的簡單程式 4 組合問題 從m個不同字元中任取n個字元的所有組合 5 分解成質因數 如435234 251 17 17 3...

C語言經典演算法8道題

1.問題描述 梯有n階,上樓可以一步上一階,也可以一步上二階。編寫乙個程式,計算共有多少中不同的走法 2.問題描述 armstrong數具有如下特徵 乙個n位數等於其個位數的n次方之和。如 153 13 53 33 1634 14 64 34 44 找出2 3 4 5位的所有armstrong數。3...

C語言經典演算法詳解

分而治之方法與軟體設計的模組化方法非常相似。為了解決乙個大的問題,可以 1 把它分成兩個或多個更小的問題 2 分別解決每個小問題 3 把各小問題的解答組合起來,即可得到原問題的解答。小問題通常與原問題相似,可以遞迴地使用分而治之策略來解決。下列通過例項加以說明。例 利用分而治之演算法求乙個整數陣列中...