天王蓋地虎

2022-02-03 09:33:10 字數 2075 閱讀 4369

1,求有序數列中某個元素的個數

思想:二分找上下界:

int element_count(int * set, int len, int

e)

另一種實現:

int element_count(int * set, int len, int

e)

其他方法:

int element_count(int * set, int len, int

e)

else

if(set[mid]>e)

max=mid-1

;

else

min = mid+1

; }

return

count;

}

2,素數:

#include#include

int s(int

k)

if(flag)

return1;

return0;

}void

main()

}

判斷函式也可以這樣寫:

int s(int

k)

還可以寫成:

int s(int

k)

還可以這樣:

int s(int

k)

3,刪除乙個字串中存在另乙個字串中的字元:

#include #include 

squeeze(

char* s1, const

char*s2)

;

int len1 =strlen(s1);

int len2 =strlen(s2);

for(i=0; i)

}if(flag)

tm[k ++] =s1[i];

}strcpy(s1,tm);

}int

main()

,b[100] = ;

printf(

"請輸入s1:");

scanf("%s

",a);

printf(

"請輸入s2:");

scanf("%s

",b);

squeeze(a,b);

printf(

"刪除後:%s\n

",a);

return0;

}

一次迴圈實現:

squeeze(char* s1, const

char*s2)

;

char sample[128] = ;

for(i = 0 ;i < len2 ; i ++)

sample[s2[i]] = 1

;

for(i = 0 ;i < len1 ;i ++)

tm[k] = 0

; strcpy(s1,tm);

}

4,字元轉換:

#include#include

void

main()

或者:

#include#include

void

main()

5,小問題

#include  #include 

"string.h

"int

main()

6,數字根是指對乙個整數,把它的各位數字相加,若其和為一位數,則此和即為其根,若不是一位數字,則把它的各位數字繼續相加,直到其和為乙個正整數為止。例如對於正整數24,因為2+4=6,和為1位數,所以6即為其根。對於39,因為3+9=12,和不為個位數,繼續相加,1+2=3,3為個位數,則為數字的根。要求輸入若干個正整數,以0為結束,輸出每個正整數的根。

unsigned foo( unsigned n )

7,