µÝ¹é »ØËÝ·¨Çó½â8»ÊºóÎÊÌ⣨C£©
ÎÞÒâÖз³öÁËNÄêǰдµÄµÝ¹é-»ØËÝ·¨Çó½â8»ÊºóÎÊÌ⣬¸É´âÈûµ½²©¿ÍÖаɡ£
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define QUEENS 8
// ¼Ç¼½âµÄÐòºÅµÄÈ«¾Ö±äÁ¿¡£
int iCount = 0;
// ¼Ç¼»ÊºóÔÚ¸÷ÁÐÉϵķÅÖÃλÖõÄÈ«¾ÖÊý×é¡£
int Site[QUEENS];
// µÝ¹éÇó½âµÄº¯Êý¡£
void Queen(int n);
// Êä³öÒ»¸ö½â¡£
void Output();
// ÅжϵÚn¸ö»Êºó·ÅÉÏÈ¥Ö®ºó£¬ÊÇ·ñÓгåÍ»¡£
int IsValid(int n);
void main()
{
// ´ÓµÚ0ÁпªÊ¼µÝ¹éÊÔ̽¡£
Queen(0);
}
//Queen£ºµÝ¹é·ÅÖõÚn¸ö»Êºó¡£
void Queen(int n)
{
int i;
// ²ÎÊýn´Ó0¿ªÊ¼£¬µÈÓÚ8ʱ±ãÊÔ³öÁËÒ»¸ö½â£¬½«ËüÊä³ö²¢»ØËÝ¡£
if(n == QUEENS)
{
Output();
return;
}
// n»¹Ã»µ½8£¬ÔÚµÚnÁеĸ÷¸öÐÐÉÏÒÀ´ÎÊÔ̽¡£
for(i = 1 ; i <= QUEENS ; i++)
{
// ÔÚ¸ÃÁеĵÚiÐÐÉÏ·ÅÖûʺó¡£
Site[n] = i;
// Èç¹û·ÅÖÃûÓгåÍ»£¬¾Í¿ªÊ¼ÏÂÒ»ÁеÄÊÔ̽¡£
if(IsValid(n))
Queen(n + 1);
}
}
// IsValid£ºÅжϵÚn¸ö»Êºó·ÅÉÏÈ¥Ö®ºó£¬ÊÇ·ñºÏ·¨£¬¼´ÊÇ·ñÎÞ³åÍ»¡£
int IsValid(int n)
{
int i;
// ½«µÚn¸ö»ÊºóµÄλÖÃÒÀ´ÎÓÚÇ°Ãæn£1¸ö»ÊºóµÄλÖñȽϡ£
for(i = 0 ; i < n ; i++)
{
// Á½¸ö»ÊºóÔÚͬһÐÐÉÏ£¬·µ»Ø0¡£
if(Site[i] == Site[n])
return 0;
// Á½¸ö»ÊºóÔÚͬһ¶Ô½ÇÏßÉÏ£¬·µ»Ø0¡£
if(abs(Site[i] - Site[n]) == (n - i))
return 0;
}
// ûÓгåÍ»£¬·µ»Ø1¡£
return 1;
}
// Output£ºÊä³öÒ»¸ö½â£¬¼´Ò»ÖÖûÓгåÍ»µÄ·ÅÖ÷½°¸¡£
void Output()
{
int i;
// Êä³öÐòºÅ¡£
printf("No.%-5d" , ++iCount);
// ÒÀ´ÎÊä³ö¸÷¸öÁÐÉϵĻʺóµÄλÖ㬼´ËùÔÚµÄÐÐÊý¡£
for(i = 0 ; i < QUEENS ; i++) {
printf("%d " , Site[i]);
}
printf("\n");
}
ÕâÒ»Ëã·¨Çó³ö92ÖÖ²¼¾Ö¡£µ«ËüÃDz¢·Ç±¾Öʽ⣬ËùÒÔÊä³öµÄ²¼¾Öµ±ÖУ¬ÓÐһЩ¾¹ýÐýת¡¢¾µÏñµÈ±ä»»ºóÊǵȼ۵ġ£
Èç¹ûÒªÇó³ö±¾Öʽ⣨Ӧ¸ÃÖ»ÓÐ12ÖÖ£©£¬¿ÉÒÔ¿¼Âǽ«ÒѾÇó³öµÄ²¼¾Ö·ÅÔÚÒ»¸öÁ´±íÖУ¬È»ºóÿ´ÎµÃµ½Ò»ÖÖеIJ¼¾Öʱ£¬¶¼¸úÇ°ÃæµÄÒÀ´Î±È½Ïһϣ¬¿´¿´¾¹ýÐýת¡¢¾µÏñºóÊÇ·ñÒ»Ö£¬Èç¹ûÒ»ÑùÔòÉáÆú¡£
Ïà¹ØÎĵµ£º
×ÜÊDZ»Í¬Ñ§ÃÇÎʵ½£¬ÈçºÎѧϰCºÍC++²Å²»Ã£È»£¬²Å²»ÊÇÂÒѧ£¬ÏëÁËһϣ¬ÕâÀï¸ø³öÒ»¸ö×ܵĻظ´¡£
Ò»¼ÒÖ®ÑÔ£¬»¶ÓÅÄש¹þ¡£
1¡¢¿ÉÒÔ¿¼ÂÇÏÈѧϰC¡£
´ó¶àÊýʱºò£¬ÎÒÃÇѧϰÓïÑÔµÄÄ¿µÄ£¬²»ÊÇΪÁ˳ÉΪһ¸öÓïÑÔר¼Ò£¬¶øÊÇÏ£Íû³ÉΪһ¸ö½â¾öÎÊÌâµÄר¼Ò¡£×öÒ»¸öÓÐÓõijÌÐòÔ±£¬×öÒ»¸ö׬ǮµÄ³ÌÐòÔ±¡£ÎÒÃǵļÛÖµ£¬½«ÌåÏÖÔÚ¿Í»§¼ÛÖµÉÏ£¬¶ø²» ......
CÊä³ö¸ñʽ×ܽá ÊÕ²Ø
CÊä³ö¸ñʽ×ܽá
1 Ò»°ã¸ñʽ
printf(¸ñʽ¿ØÖÆ£¬Êä³ö±íÁУ©
ÀýÈ磺printf("i=%d,ch=%c\n",i,ch);
˵Ã÷:
(1)“¸ñʽ¿ØÖÆ”ÊÇÓÃ˫ƲºÅÀ¨ÆðÀ´µÄ×Ö·û´®£¬Ò²³Æ“ת»»¿ØÖÆ×Ö·û´®”£¬Ëü°üÀ¨Á½ÖÖÐÅÏ¢£º
&nbs ......
¿ª·¢»·¾³£ºUbuntu9.10,python2.6,gcc4.4.11,ubuntuϵÄpythonÔËÐаüºÍ¿ª·¢°üÊÇ·Ö¿ªµÄ£¬Òò´ËÐèÒªÔÚÐÂÀûµÃÀïÃæ°²×°python-all-dev,´Ó¶ø¿ÉÒÔÔÚ´úÂëÖÐÒýÓÃpythonµÄÍ·ÎļþºÍ¿â¡£2.ÏÂÃæÊÇÒ»¸ö×î¼òµ¥µÄ¿ÉÒÔ¹©pythonµ÷ÓõÄcÀ©Õ¹Ä£¿é£¬¼ÙÉèc³ÌÐòÎļþÃûΪfoo.c:´úÂë#include <Python.h>
static PyObject* foo_b ......
´´½¨Ð½ø³Ì£ºforkº¯Êý
1.1.1. forkº¯Êý¸Éʲô£¿
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
‘fork()’º¯ÊýÓÃÓÚ´ÓÒÑ´æÔÚ½ø³ÌÖд´½¨Ò»¸öнø³Ì¡£Ð½ø³Ì³ÆÎª×Ó½ ......