-
题目描述:
-
给你一个n,然后让你输出F(n)
规则是这样的,F(n)的输出结果是:
F(n-1) F(n-1)
F(n-1)
F(n-1) F(n-1)
F(1)的输出结果是:X
那么根据规则F(2)的输出结果应该是:
X X
X
X X
-
输入:
-
题目有多组输入,每组输入一个n(n<=7)。
当输入零或负数的时候结束输入。
-
输出:
-
对每组输入输出相应的F(n),每组输出最后一行是‘#’。
-
样例输入:
-
1 2 3 -1
-
样例输出:
-
X # X X X X X # X X X X X X X X X X X X X X X X X X X X X X X X X
#
-
-
-
-
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-
这个用个char型二维数组复制N次就可以了
-
-
-
-
#include<iostream> #include<stdio.h> #include<string.h> using namespace std; char v[1501][1501]; bool f() { int j,k,i; int temp=1; for(j=1;j<7;j++) { for(k=0;k<temp;k++) for(i=0;i<temp;i++) { v[k][i+2*temp]=v[k][i]; v[k+temp][i+temp]=v[k][i]; v[k+2*temp][i]=v[k][i]; v[k+2*temp][i+2*temp]=v[k][i]; } temp*=3; } return true; } int main() { int n; int j,i; int temp; memset(v,' ',sizeof(v)); v[0][0]='X'; f(); while(cin>>n&&n>=1) { temp=1; while(n>1) { temp*=3; n--; } for(j=0;j<temp;j++) { for(i=0;i<temp;i++) printf("%c",v[j][i]); printf("\n"); } printf("#\n"); } return 0; } /************************************************************** Problem: 1345 User: 午夜小白龙 Language: C++ Result: Accepted Time:120 ms Memory:3720 kb ****************************************************************/