高手病犯了~之打印图形3~

这次高手病是要挑战一个稍微要分类讨论的图形~

不过是最简单的分类讨论啦~

高手嘛~还是要一步到位~不过分类讨论还是不可避免的~


当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;

}


后记~绝对值处理分类讨论问题是编程常用的方法之一~感觉有规律可寻的图形可以通过规律来进行编码~


还是每次复制粘贴程序都要进行缩进处理~无语~

不过这程序感觉还是可以的~试试效果如何~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值