为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。

Sgu/159

来自NOCOW
< Sgu
跳转到: 导航, 搜索
/by Logic
#include<stdio.h>
#include<string.h>
const int maxn=2050,maxk=10;
int b,n,k=0,se[maxk][maxn]={0};
int num[maxn];
void dfs(int cur,int rem)
{
	int i,j,tmp;
	if(cur==n)
	{
		if(n>1&&!num[n-1]) return ;
		for(i=0;i<n;i++)
			se[k][i]=num[i];
		k++;
	}
	else
	{
		for(i=0;i<b;i++)
		{
			num[cur]=i;
			tmp=0;
			for(j=0;j<=cur;j++)
				tmp+=num[j]*num[cur-j];
			if((rem+tmp)%b==i)
				dfs(cur+1,(rem+tmp)/b);
			num[cur]=0;
		}
	}
}
int main()
{
#ifndef ONLINE_JUDGE
	freopen("data.in","r",stdin);
	//freopen("data.out","w",stdout);
#endif
	int i,j;
	scanf("%d%d",&b,&n);
	dfs(0,0);
	printf("%d\n",k);
	for(i=0;i<k;i++)
	{
		for(j=n-1;j>=0;j--)
			printf("%c",se[i][j]<10?se[i][j]+48:se[i][j]+55);
		printf("\n");
	}
	return 0;
}
个人工具