| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 555 人关注过本帖
标题:函数递归为什么会出现不一样的结果????
取消只看楼主 加入收藏
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
函数递归为什么会出现不一样的结果????
程序代码:
#include <iostream>
#include <iomanip>
using namespace std;
const int n=5;
int move[9][3];
int l,m,a[n+1][n+1];
bool q;
void fun(int i,int j,int k,bool &q)
{
    int v=0,g,h;
    do
    {
        v++;
        q=false;
        g=i+move[v][1];
        h=j+move[v][2];
        if(g>=1&&h<=8&&h>=1&&h<=8&&a[g][h])
        {
            a[g][h]=k;
            if(k<n*n)
            {
                fun(g,h,k+1,q);
                if(!q)  a[g][h]=0;
            }
            else
            {
                q=true;
            }
        }
    }while(!q&&v!=8);
}

int main()
{
  move[1][1]=2;move[1][2]=1;
  move[2][1]=1;move[2][2]=2;
  move[3][1]=-1;move[3][2]=2;
  move[4][1]=-2;move[4][2]=1;
  move[5][1]=-2;move[5][2]=-1;
  move[6][1]=-1;move[6][2]=-2;
  move[7][1]=1;move[7][2]=-2;
  move[8][1]=2;move[8][2]=-1;
  cout<<"n="<<n<<endl;
  cout<<"the first position:";
  int x1,y1;
  cin>>x1>>y1;
  fun(x1,y1,2,q);
  if(q)
  {
      for(l=1;l<=n;l++)
      {
          for(m=1;m<=n;m++)
              cout<<setw(4)<<a[l][m];
          cout<<endl;
      }
  }
  else
  {
      cout<<"no solutuon!"<<endl;
  }
  cout<<endl;
  return 0;
}
为什么在输入1,1后会出现 no solution !的结果呢?很是不理解。。。
另外请专家给讲解一下其中的递归函数是怎么运行的呢?
2011-10-28 22:34
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
回复 2楼 laznrbfe
加上好像也不对,出来的结果是这样的。
 
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-10-29 17:00
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
回复 5楼 lin471306489
在一个5*5的方格里用马走日的走法将1-25放满整个方格,如果成功则输出结果,如果不成功则输出no solution!
2011-10-30 12:27
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
回复 4楼 lin471306489
主函数里的q是接受了fun函数里的q,在执行fun函数的时候它不是被付值false了吗?它应该有值了吧。
2011-10-30 13:21
快速回复:函数递归为什么会出现不一样的结果????
数据加载中...
 
   



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

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