return 0; for(k=1; i>=k && j+k
if(Board[i-k][j+k]) return 0; return 1; } void Trial(int i, int n) { // Ñ°ÕÒºÏÊÊÏÂÆåλÖà if(i == n) { for(int k=0; k
for(int m=0; m
printf("%d ", Board[k][m]); printf("\n"); } printf("\n"); } else { for(int j=0; j
Board[i][j] = 1; if(Valid(i,j)) Trial(i+1, n); Board[i][j] = 0; } } } int main(int argc, char* argv[]) { Trial(0, N); } 14¡¢ÊµÏÖstrstr¹¦ÄÜ£¬¼´ÔÚ¸¸´®ÖÐÑ°ÕÒ×Ó´®Ê״γöÏÖµÄλÖᣣ¨±ÊÊÔÖг£ÈÃÃæÊÔÕßʵÏÖ±ê×¼¿âÖеÄһЩº¯Êý£© char * strstring(char *ParentString, char *SubString) { char *pSubString, *pPareString; for(char *pTmp=ParentString; *pTmp; pTmp++) { pSubString = SubString; pPareString = pTmp; while(*pSubString == *pPareString && *pSubString != '\0') { pSubString++; pPareString++; } if(*pSubString == '\0') return pTmp; } return NULL; } int main(int argc, char* argv[]) { char *ParentString = "happy birthday to you!"; char *SubString = "birthday"; printf("%s",strstring(ParentString, SubString)); } 15¡¢ÏÖÔÚСÃ÷Ò»¼Ò¹ýÒ»×ùÇÅ£¬¹ýÇŵÄʱºòÊǺÚÒ¹£¬ËùÒÔ±ØÐëÓеơ£ÏÖÔÚСÃ÷¹ýÇÅÒª1·Ö£¬Ð¡Ã÷µÄµÜµÜÒª3·Ö£¬Ð¡Ã÷µÄ°Ö°ÖÒª6·Ö£¬Ð¡Ã÷µÄÂèÂèÒª8·Ö£¬Ð¡Ã÷µÄÒ¯Ò¯Òª12·Ö¡£Ã¿´Î´ËÇÅ×î¶à¿É¹ýÁ½ÈË£¬¶ø¹ýÇŵÄËÙ¶ÈÒÀ¹ýÇÅ×îÂýÕ߶ø¶¨£¬¶øÇÒµÆÔÚµãȼºó30·Ö¾Í»áϨÃð¡£ÎÊСÃ÷Ò»¼ÒÈçºÎ¹ýÇÅʱ¼ä×î¶Ì£¿£¨Ô±¾ÊǸöССÖÇÁ¦Ì⣬¾Ý˵ÊÇÍâÆóµÄÃæÊÔÌ⣬ÔÚÕâÀïÓóÌÐòÀ´Çó½â£© #include "stdafx.h" #define N 5 #define SIZE 64 // ½«ÈËÔ±±àºÅ£ºÐ¡Ã÷-0£¬µÜµÜ-1£¬°Ö°Ö-2£¬ÂèÂè-3£¬Ò¯Ò¯-4 // ÿ¸öÈ˵ĵ±Ç°Î»Öãº0--ÔÚÇÅ×ó±ß£¬ 1--ÔÚÇÅÓÒ±ß int Position[N]; // ¹ýÇÅÁÙʱ·½°¸µÄÊý×éϱꣻ ÁÙʱ·½°¸£» ×îСʱ¼ä·½°¸£» int Index, TmpScheme[SIZE], Scheme[SIZE]; // ×îС¹ýÇÅʱ¼ä×ܺͣ¬³õʼֵ100£»Ã¿¸öÈ˹ýÇÅËùÐèÒªµÄʱ¼ä int MinTime=100, Time[N]={1, 3, 6, 8, 12}; // Ñ°ÕÒ×î¼Ñ¹ýÇÅ·½°¸¡£Remnant:δ¹ýÇÅÈËÊý; CurTime:µ±Ç°ÒÑÓÃʱ¼ä; // Direction:¹ýÇÅ·½Ïò,1--ÏòÓÒ,0--Ïò×ó void Find(int Remnant, int CurTime, int Direction) { if(Remnant == 0) { // ËùÓÐÈËÒѾ¹ýÇÅ£¬¸üÐÂ×îÉÙʱ¼ä¼°·½°¸ MinTime=CurTime; for(int i=0; i
=0; i++)
Scheme[i] = TmpScheme[i];
} else if(Direction == 1) { // ¹ýÇÅ·½ÏòÏòÓÒ£¬´ÓÇÅ×ó²àÑ¡³öÁ½È˹ýÇÅ
for(int i=0; i
if(Position[i] == 0 && CurTime + Time[i] < MinTime) {
TmpScheme[Index++] = i;
Position[i] = 1;
for(int j=0; j
int TmpMax = (Time[i] > Time[j] Time[i] : Time[j]);
if(Position[j] == 0 && CurTime + TmpMax < MinTime) {
TmpScheme[Index++] = j;
Position[j] = 1;
Find(Remnant - 2, CurTime + TmpMax, !Direction);
Position[j] = 0;
TmpScheme[--Index] = -1;
}
}
Position[i] = 0;
TmpScheme[--Index] = -1;
}
} else { // ¹ýÇÅ·½ÏòÏò×󣬴ÓÇÅÓÒ²àÑ¡³öÒ»¸öÈË»ØÀ´Ë͵Æ
for(int j=0; j
if(Position[j] == 1 && CurTime+Time[j] < MinTime) {
TmpScheme[Index++] = j;
Position[j] = 0;
Find(Remnant+1, CurTime+Time[j], !Direction);
Position[j] = 1;
TmpScheme[--Index] = -1;
}
}
}
}
int main(int argc, char* argv[]) {
for(int i=0; i
Scheme[i] = TmpScheme[i] = -1;
Find(N, 0, 1); // ²éÕÒ×î¼Ñ·½°¸
printf("MinTime=%d:", MinTime); // Êä³ö×î¼Ñ·½°¸
for(int i=0; i
=0; i+=3)
printf(¡± %d-%d %d¡±, Scheme[i], Scheme[i+1], Scheme[i+2]);
printf(¡°\b\b ¡°);
}
16¡¢2005Äê11Ô½ðɽ±ÊÊÔÌâ¡£±àÂëÍê³ÉÏÂÃæµÄ´¦Àíº¯Êý¡£º¯Êý½«×Ö·û´®ÖеÄ×Ö·û¡¯*'ÒƵ½´®µÄÇ°²¿·Ö£¬Ç°ÃæµÄ·Ç¡¯*'×Ö·ûºóÒÆ£¬µ«²»Äܸıä·Ç¡¯*'×Ö·ûµÄÏȺó˳Ðò£¬º¯Êý·µ»Ø´®ÖÐ×Ö·û¡¯*'µÄÊýÁ¿¡£ÈçÔʼ´®Îª£ºab**cd**e*12£¬´¦ÀíºóΪ*****abcde12£¬º¯Êý²¢·µ»ØֵΪ5¡££¨ÒªÇóʹÓþ¡Á¿ÉÙµÄʱ¼äºÍ¸¨Öú¿Õ¼ä£©
int change(char *str) { /* Õâ¸öËã·¨²¢²»¸ßЧ£¬´ÓºóÏòÇ°ËÑË÷ЧÂÊÒª¸ßЩ */
int count = 0; /* ¼Ç¼´®ÖÐ×Ö·û¡¯*'µÄ¸öÊý */
for(int i=0, j=0; str[i]; i++) { /* ÖØ´®Ê׿ªÊ¼±éÀú */
if(str[i]==¡¯*') { /* Óöµ½×Ö·û¡¯*¡¯ */
for(j=i-1; str[j]!=¡¯*'&&j>=0; j¨C) /* ²ÉÓÃÀàËƲåÈëÅÅÐòµÄ˼Ï룬½«*Ç°Ãæ */
str[j+1]=str[j]; /* µÄ·Ç*×Ö·ûÖð¸öºóÒÆ£¬Ö±µ½Óöµ½*×Ö·û */
str[j+1] = ¡®*¡¯;
count++;
}
}
return count;
}
int main(int argc, char* argv[]) {
char str[] = ¡°ab**cd**e*12¡å;
printf(¡°str1=%s\n¡±, str);
printf(¡°str2=%s, count=%d¡±, str, change(str));
}
// ÖÕÓڵõ½Ò»¸ö±È½Ï¸ßЧµÄËã·¨£¬Ò»¸öÍøÓÑÌṩ£¬¹À¼ÆÓ¦¸ÃºÍ½ðɽÃæÊÔ¹ÙµÄÏë·¨Ò»Ö¡£Ëã·¨ÈçÏ£º
int change(char *str) {
int i,j=strlen(str)-1;
for(i=j; j>=0; j¨C) {
if(str[i]!=¡¯*') {
i¨C;
} else if(str[j]!=¡¯*') {
str[i] = str[j];
str[j] = ¡®*¡¯;
i¨C;
}
}
return i+1;
}
17¡¢2005Äê11ÔÂ15ÈÕ»ªÎªÈí¼þÑз¢±ÊÊÔÌ⡣ʵÏÖÒ»µ¥Á´±íµÄÄæת¡£
#include ¡°stdafx.h |