| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 614 人关注过本帖
标题:请教一个递归问题
只看楼主 加入收藏
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
 问题点数:0 回复次数:4 
请教一个递归问题

#include<stdio.h>
#include<stdlib.h>
#define N 9

int array[N][N]={9,0,5,8,0,4,0,2,0,
8,0,0,1,0,5,0,0,9,
1,0,0,0,0,0,5,0,3,
0,0,0,3,9,0,8,0,0,
2,0,8,0,0,0,7,0,1,
3,0,9,0,8,1,0,0,0,
5,0,4,0,0,0,0,1,0,
7,0,0,6,0,0,0,0,0,
0,8,0,5,0,3,9,0,0};
int temp[N][N];

void print()
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d ",array[i][j]);
printf("\n");
}
}

bool Test(int n,int m,int value)
{
bool b=true;
int i;
for(i=0;i<N;i++)
{
if(array[n][i]==value)b=false;
if(array[i][m]==value)b=false;
}
return b;
}

void swap(int row,int col)
{
int i,j,m;
if(row==N){print();system("PAUSE");}
i=row+(col+1)/N;
j=(col+1)%N;
if(array[row][col]!=0)swap(i,j);
for(m=1;m<=N;m++)
{
if(Test(row,col,m))
{
array[row][col]=m;
swap(i,j);
array[row][col]=0;
}
}
}

int main()
{
swap(0,0);
return 0;
}

这是一个求数独的问题!!!
为什么有的答案是重复的呢?如何在递归里避免重复的呢?

搜索更多相关主题的帖子: 递归 
2007-03-30 20:26
wxj120bw
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-6-9
收藏
得分:0 
不明白你说的求数独是什么意思,还有答案是重复是直那些部分
2007-06-10 22:04
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 
Suduko, a popular game dated back 1990's, is called 数独 in Japanese.

You may google Suduko.


I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-06-11 03:30
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
求数独??

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-06-11 12:27
jsdgy
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-5-21
收藏
得分:0 
2007-06-11 13:06
快速回复:请教一个递归问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023161 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved