问题 4145 --特殊九宫格

4145: 特殊九宫格★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 221  解决: 105
[提交][状态][命题人:]

题目描述

请完善下面的程序,将1~9个数字填入3*3的九宫格中,第一行的三个数字组成一个三位数。要使第二行的三位数是第一行的2倍,第三行的三位数是第一行的3倍,且每个格子里的数字都不能重复。现在要求输出所有的填充方案,以每种方案中的第一行组成的三位数升序输出。

输出格式:每一种方案输出共三行,每行中每两个数之间没有空格,每种方案输出后都要输出一个空行。

最后一行一个数字,表示方案的总数。

#include<bits/stdc++.h>
using namespace std;
#define n 9
int a[10], b[10], t1, t2, t3, c;
void f(int s)
{
	int i;
	if(____(1)______)
	{
		t1=a[1]*100+a[2]*10+a[3];
		t2=a[4]*100+a[5]*10+a[6];
		t3=a[7]*100+a[8]*10+a[9];
		if(_____(2)_______)
		{
			cout<<t1<<endl;
			cout<<t2<<endl;
			cout<<t3<<endl;
			cout<<endl;
			c++;
		}
		return;
	}
	for(i=1;i<=n;i++)
	{
		if(b[i]==0)
		{
			______(3)______
			b[i]=1;
			_____(4)_______
			_____(5)_______
		}
	}
}
int main( )
{
    f(1);
    cout<<c<<endl;
    return 0;
}

输入

输出

输出每个空的答案,大写字母,每个单独一行,一共五行

提示

来源

[提交][状态]