Discuz! Board

 找回密码
 立即注册
查看: 523|回复: 1

23.1.8递归

[复制链接]

15

主题

19

帖子

4118

积分

论坛元老

Rank: 8Rank: 8

积分
4118

墨海马 Lv:15
发表于 2023-1-8 15:19:07 | 显示全部楼层 |阅读模式
[C] 纯文本查看 复制代码
#include<bits/stdc++.h>
using namespace std;
int s=0,m;
char a[100];
char a1[17]={"0123456789ABCDEF"};

int jzzh(int n)
{
	if(n==0)
	{
		return 0;
	} 
	else
	{
		s++;
		if(n%m>=10)
		{
			a[s]=n%m+55;
		}
		else
		{
			a[s]=n%m+'0';
		}
		return jzzh(n/m);
	}
}
void jinzhi(int n)
{
	if(n==0) return;
	else
	{
		jinzhi(n/m);
		cout<<a1[n%m];
	}
}
int hntdt(int n)
{
	a[1]=1;
	for(int i=2;i<=n;i++)
	{
		a[i]=a[i-1]*2+1;
	}
	return a[n];
}
int hntdg(int n)
{
	if(n==1) return 1;
	else
	{
		return hntdg(n-1)*2+1;
	}
}
void hntdg2(int n,char a,char b,char c)
{
	if(n==1) cout<<n<<':'<<a<<"->"<<c<<endl;
	else
	{
		hntdg2(n-1,a,c,b);
		cout<<n<<':'<<a<<"->"<<c<<endl;
		hntdg2(n-1,b,a,c);
	}
}

int main()
{
	int n;
	cin>>n;
	char a='a';
	char b='b';
	char c='c';
	//jzzh(n);
	//for(int i=s;i>=1;i--)
	{
		//cout<<a[i];
	}
	//jinzhi(n);
	//cout<<hntdt(n);
	//cout<<hntdg(n);
	hntdg2(n,a,b,c);
	return 0;
}

回复

使用道具 举报

662

主题

848

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435567

烈空座 Lv:100
发表于 2023-2-18 22:18:03 | 显示全部楼层
[C] 纯文本查看 复制代码
bool check(int i,int j)
{
    for(int k=0;k<8;k++)
    {
        if((i==k||j==b[k]||abs(i-k)==abs(j-b[k]))&&b[k]>=0)//?
        {
            return false;
        }
    }
    return true;
} 
void search4(int n)
{
    for(int k=0;k<8;k++)
    {
        if(check(k,n))
        {
            b[k]=n;
            if(n==7)//7 
            {
                cnt++;
            }
            else
            {
                search4(n+1);
            }
            b[k]=-1;
        }
    }
}
void eightqueen()//八皇后 
{
    memset(b,-1,sizeof(b));
    search4(0);//1
    cout<<cnt;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-5-31 12:37 , Processed in 0.059198 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表