Chào bạn. Mình code bài này lúc học lập trình cơ sở nè. Bạn tham khảo nhé. Còn ý tưởng thì bạn tìm mấy cuốn giải thuật có nhiều lắm. Chúc bạn học tập tốt!
#include "stdio.h"
#include "conio.h"
#include "string.h"
int main()
{
int a[100][100];
int x=1,n=3; // ma phuong cap n le
int i=0,j=n/2;
memset(a,0,sizeof(a));
while(x<=n*n)
{
a[i][j]=x++;
if(i<=0 && j>=(n-1)) i++;
else
if(i<=0 && j<(n-1)) {i=n-1; j++;}
else
if(a[i-1][j+1] !=0 ) i++;
else
if(j>=(n-1) && i>0) {i--; j=0;}
else
{
i--; j++;
}
}
for (i=0;i<n;i++)
{printf("\n\n\n");
for (j=0;j<n;j++)
printf("\t %d",a[i][j]);
}
getch();
}
======================================================================================================
Cuộc đời là một dòng sông. Ai không bơi thì chết.
Name: Tien (Tory) TRAN
Email: TranTien29@gmail.com