这次高手病是要挑战一个稍微要分类讨论的图形~
不过是最简单的分类讨论啦~
高手嘛~还是要一步到位~不过分类讨论还是不可避免的~
当N=5时打印如下图形~
*
**
***
****
*****
****
***
**
*
由此可见~这个不是一个常规的数列~而是一个由分段函数复合而成的数列~那么怎么分类讨论呢~其实~当你会写数列
123454321的通项公式问题就解决了~
当然~这个分类讨论会比上面1234554321这个例子要复杂~但核心思想是一样的~具体代码如下~
#include<stdio.h>
#include<math.h>
#define N 5
int main()
{
int i=0;
int k=(N+1)*(N+2)/2;
for (i=2;i<(N+1)*(N+1);i++)
{
int s=k-abs(k-i)-1;
double a=sqrt(8*(s-(N+1)*(i>k))+9)-1;
double b=fmod(a,2);
putchar("*\n"[b==0]);
}
return 0;
}
后记~绝对值处理分类讨论问题是编程常用的方法之一~感觉有规律可寻的图形可以通过规律来进行编码~
还是每次复制粘贴程序都要进行缩进处理~无语~
不过这程序感觉还是可以的~试试效果如何~