c++方阵题目
来源:百度知道 编辑:UC知道 时间:2024/06/12 06:39:36
打印一个n*n的方阵,n为每边字符的个数(3<n<20),要求最外一层为"I",第二层为"J",从第3层起每层依次打印1.2.3....
例如n=15,
TTTTTTTTTTTTTTT
TJJJJJJJJJJJJJT
TJ11111111111JT
TJ12
T
TTTTTTTTTTTTTTT
如这样,应该大家能明白吧....
最好后面能有解释
写的好再加分./
Laplas的 是我想要的答案
还有那个n是自己输的,不是直接就好的
还有各位大大,可以帮忙解析下嘛
好难看懂啊
TTTTTTTTTTTTT
TJJJJJJJJJJJJT
TJ111111111JT
TJ122222221JT
TJ123333321JT
TJ123444321JT
TJ123454321JT
TJ123444321JT
TJ123333321JT
TJ122222221JT
TJ111111111JT
TJJJJJJJJJJJJT
TTTTTTTTTTTTT
例如n=15,
TTTTTTTTTTTTTTT
TJJJJJJJJJJJJJT
TJ11111111111JT
TJ12
T
TTTTTTTTTTTTTTT
如这样,应该大家能明白吧....
最好后面能有解释
写的好再加分./
Laplas的 是我想要的答案
还有那个n是自己输的,不是直接就好的
还有各位大大,可以帮忙解析下嘛
好难看懂啊
TTTTTTTTTTTTT
TJJJJJJJJJJJJT
TJ111111111JT
TJ122222221JT
TJ123333321JT
TJ123444321JT
TJ123454321JT
TJ123444321JT
TJ123333321JT
TJ122222221JT
TJ111111111JT
TJJJJJJJJJJJJT
TTTTTTTTTTTTT
// 要打其他尺寸的就改N
#include "stdio.h"
#include "math.h"
const long N = 15;
const char strData[] = "TJ123456789";
int main(int argc, char* argv[])
{
long m = N/2;
long i,j;
for (j=0; j<N; j++)
{
for (i=0; i<N; i++)
{
long k1 = abs(j-m);
long k2 = abs(i-m);
long k = k1>k2? k1:k2;
printf("%c", strData[m-1-k]);
}
printf("\n");
}
return 0;
}
TTTTTTTTTTTTT
TJJJJJJJJJJJT
TJ111111111JT
TJ122222221JT
TJ123333321JT
TJ123444321JT
TJ123454321JT
TJ123444321JT
TJ123333321JT
TJ122222221JT
TJ111111111JT
TJJJJJJJJJJJT
TTTTTTTTTTTTT
Press any key to continue
占个位子!200分我写!
不明白到底什么意思
//楼上的算法非常好。
#include<iostream>
#inclu