数列!!!

来源:互联网 发布:java覆盖和重载 编辑:程序博客网 时间:2024/04/28 16:21
Description

小李有一个对数学很痴迷的朋友小余。一天小李去找小余玩,可是小余一定要研究一个数列。这个数列的通项为 an= n2×3n s是这个数列的前n项和(通项式中的2,n是指数)。现在小余想知道sn+ q×5是否为偶数(表达式中的m为指数)。小李知道小余的脾气,不解决问题是不能开心的玩耍的。所以小李请你解决这个问题。

Input

多组数据输入。

每组一行,nqm(1<=n<10000000,1<=q,m<=10)

Output

每组输出一行。

如果sn+5mq 是偶数,输出YES,否则,输出NO

这个题应该是我想的时间最长的一个了,一开始看到这个题,我猜就是有一定机制的,不会一个一个计算的,

如果计算的话实在是太大了,后来我就在想,一个奇数和偶数的区别在于是否能被2 整除,但是如果想更准确

一定的话就是他的二进制最后一个位是不是1了,我最后的判断方法就是通过这个进行判断的,sn+ q×5m

我想过我学要把这个式子拆成两个部分,这两个部分分别是 snq×5m

最后的问题就是看看这个两个数字会怎么变化就可以了,在这里要给出一个推论 :


偶数加偶数一定等于偶数

奇数加奇数一定等于奇数

偶数加奇数一定等于奇数


偶数乘偶数一定等于偶数

奇数乘偶数一定等于偶数

奇数乘奇数一定等于奇数


这样我们写代码的时候就方便多了,判断也就明确了,5^m 无论m为何值,他的结果都是奇数,也就是说决定这

一部分的关键在q这个数值上,而Sn这个前n项的和也是有一定的规律的,我发现如果

n = 1,2 结果是奇数

n = 3,4 结果是偶数

。。。。

这样一直循环下去,也就说,只要知道了n就能知道这个Sn的奇偶问题了。














1 0
原创粉丝点击