杨辉三角中的奇偶问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 15:01:01
求第n行中奇数的个数,这个n可能会很大,例如65535,急急!

有三个思路:
1 把奇数写成1,偶数写成0,当成二进制好了。 然后按照每行的递推关系1+1=0,0+0=0这样来做。数数。这个方法最笨,如果是平时考试的话可能就这样做
2 杨辉三角有个定理:
第2^k -1 行全是奇数,第2^k行除了两端的1之外全是偶数。而第n行有n个数字。如果碰巧题目问到了2^k-1或是2^k的行数,你就直接按照这个定理计算
3 你给了65535的范围。我感觉你好象是参加信息学竞赛的吧?这个题目本身通项公式就很难写出。如果是编程的话,最好的就是开一个65536的boolean数组,肯定不会超界。每次用递推关系来计算,仍然是true+true=false,true+false=true, false+false=false.只保留一个一维数组。应该能在5秒的时限内跑出来。

行(即这行有多少个数) 个(奇数) 个(偶数)
1----------1-----------1----------0
2--------1---1---------2----------0
3-------1--2--1--------2----------1
4------1--3--3-1-------4----------0
5-----1-4--6--4-1------2----------3
6----1-5-10-10-5-1-----4----------2

奇+偶=奇 奇+奇=偶 奇+偶=奇