二分- Count on Canton

题目:

代码:

是一个蛇形数列,把题目上的那组数倒过来看成一个正三角形。

第一行有1个数,1-2行有三个数,1-4行有6个数,1-4行有10个数,1-5行有15个数。。。。。

现在要求第n个数是多少,首先就要知道第n个数在第几行。

第n个数的前面共有n-1个数,我们就用for循环从1开始一直加,直到和sum>=n(n个数)为止,终止时的i即为第n个数所在的行数。

对i判断奇偶;

如果i是偶数,即要找的那个数字在偶数行,那么分子从i依次递减,那么减多少呢,减的数字等于总数sum减去(n-1),分母用行数减分子;

如果i是奇数,即要找的那个数字在奇数行,那么分母从i依次递减(从右向左),那么减多少呢,减的数字等于总数sum减去(n-1),分子用行数减分母。

posted @ 2019-03-28 21:00  ACMer123  阅读(145)  评论(0编辑  收藏  举报