C语言经典算法大全

发布 2019-07-30 09:55:17 阅读 3260

int i, j, k, m, l;

int tmpi, tmpj;

int count, min, tmp;

i = x;

j = y;

board[i][j] =1;

for(m = 2; m <=64; m++)

int num; /解答编号。

void backtrack(int); 递回求解。

int main(void) ;

int i;

srand(time(null));

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

coins[i] =10;

printf("输入假币重量(比10大或小):"

scanf("%d", i);

coins[rand() 8] =i;

eightcoins(coins);

printf("列出所有钱币重量:")

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

printf("%d ",coins[i]);

printf("");

return 0;

void compare(int coins,int i, int j, int k) {

if(coins[i] >coins[k])

printf("假币 %d 较重", i+1);

elseprintf("假币 %d 较轻", j+1);

void eightcoins(int coins)

if(coins[0]+coins[1]+coins[2] =

coins[3]+coins[4]+coins[5])

if(coins[6] >coins[7])

compare(coins, 6, 7, 0);

elsecompare(coins, 7, 6, 0);

else if(coins[0]+coins[1]+coins[2] >

coins[3]+coins[4]+coins[5])

if(coins[0]+coins[3] =coins[1]+coins[4])

compare(coins, 2, 5, 0);

else if(coins[0]+coins[3] >coins[1]+coins[4])

compare(coins, 0, 4, 1);

if(coins[0]+coins[3]

compare(coins, 1, 3, 0);

else if(coins[0]+coins[1]+coins[2] <

coins[3]+coins[4]+coins[5])

if(coins[0]+coins[3] =coins[1]+coins[4])

compare(coins, 5, 2, 0);

else if(coins[0]+coins[3] >coins[1]+coins[4])

compare(coins, 3, 1, 0);

if(coins[0]+coins[3]

compare(coins, 4, 0, 1);

gossip: 生命游戏。

说明生命游戏(game of life)为2023年由英国数学家j. h. conway所提出,某一细胞的邻居包。

括上、下、左、右、左上、左下、右上与右下相邻之细胞,游戏规则如下:

孤单死亡:如果细胞的邻居小于一个,则该细胞在下一次状态将死亡。

拥挤死亡:如果细胞的邻居在四个以上,则该细胞在下一次状态将死亡。

稳定:如果细胞的邻居为二个或三个,则下一次状态为稳定存活。

复活:如果某位置原无细胞存活,而该位置的邻居为三个,则该位置将复活一细胞。

解法生命游戏的规则可简化为以下,并使用case比对即可使用程式实作:

邻居个数为时,则该细胞下次状态为死亡。

邻居个数为2时,则该细胞下次状态为复活。

邻居个数为3时,则该细胞下次状态为稳定。

#include <>

#include <>

#include <>

#define maxrow 10

#define maxcol 25

#define dead 0

#define alive 1

int map[maxrow][maxcol], newmap[maxrow][maxcol];

void init();

int neighbors(int, int);

void outputmap();

void copymap();

int main()

int row, col;

char ans;

init();

while(1) {

outputmap();

C语言经典算法详解

分而治之方法与软件设计的模块化方法非常相似。为了解决一个大的问题,可以 1 把它分成两个或多个更小的问题 2 分别解决每个小问题 3 把各小问题的解答组合起来,即可得到原问题的解答。小问题通常与原问题相似,可以递归地使用分而治之策略来解决。下列通过实例加以说明。例 利用分而治之算法求一个整数数组中的...

C语言经典例题

程序81 题目 809 800 9 1 其中?代表的两位数,8 的结果为两位数,9 的结果为3位数。求?代表的两位数,及809 后的结果。1.程序分析 2.程序源 include include output long b,long i printf ld ld 809 ld ld b,i,i,b ...

c语言图形题经典习题

空心梯形。编程,输入n,输出如下例 n 5 所示的高和上底均为n的等腰空心梯形。include main int a,b,c,d,e scanf d a b a for c 1 c a c 空心六边形。编程,输入n,输出如下例 n 5 所示的边长为n的空心正六边型。include main int ...