假設有一個m*n行列的一個行列資訊。每一個單元塊又變成a*b行列資訊。
例如原來是3*3,每一個小塊又是3*3
如圖
原來
* * *
* * *
* * *
變后
*** *** ***
*** *** ***
*** *** ***
*** *** ***
*** *** ***
*** *** ***
*** *** ***
*** *** ***
*** *** ***
uj5u.com熱心網友回復:
僅供參考://輸入1
//輸出
//* *
// *
//* *
//輸入2
//輸出
//* * * *
// * *
//* * * *
// * *
// *
// * *
//* * * *
// * *
//* * * *
//輸入3
//輸出
//* * * * * * * *
// * * * *
//* * * * * * * *
// * * * *
// * *
// * * * *
//* * * * * * * *
// * * * *
//* * * * * * * *
// * * * *
// * *
// * * * *
// * *
// *
// * *
// * * * *
// * *
// * * * *
//* * * * * * * *
// * * * *
//* * * * * * * *
// * * * *
// * *
// * * * *
//* * * * * * * *
// * * * *
//* * * * * * * *
//最大輸入8
#include <stdio.h>
char m[6561][6561];//==3^8
void fractalx(int cy,int cx,int L) {
int N,i;
if (1==L) {
m[cy ][cx ]='*';
m[cy-1][cx-1]='*';
m[cy-1][cx+1]='*';
m[cy+1][cx+1]='*';
m[cy+1][cx-1]='*';
} else {
N=1;for (i=0;i<L-1;i++) N=N*3;
fractalx(cy ,cx ,L-1);
fractalx(cy-N,cx-N,L-1);
fractalx(cy-N,cx+N,L-1);
fractalx(cy+N,cx+N,L-1);
fractalx(cy+N,cx-N,L-1);
}
}
int main() {
int L,N,i,y,x;
while (1) {
while (1) {
printf("\nInput 1..8,0 for Exit:");
fflush(stdout);
if (1==scanf("%d",&L)) {
if (0<=L && L<=8) break;
} else rewind(stdin);
}
if (0==L) break;
N=1;for (i=0;i<L;i++) N=N*3;
for (y=3280-(N-1)/2;y<=3280+(N-1)/2;y++) {
for (x=3280-(N-1)/2;x<=3280+(N-1)/2;x++) {
m[y][x]=' ';
}
}
fractalx(3280,3280,L);
for (y=3280-(N-1)/2;y<=3280+(N-1)/2;y++) {
for (x=3280-(N-1)/2;x<=3280+(N-1)/2;x++) {
printf("%c",m[y][x]);
}
printf("\n");
}
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/68650.html
標籤:基礎類
下一篇:播放視頻的時候 螢屏水印一直閃
