山东省第八届ACM省赛 I 题 Parity check 详解
2017-08-17 12:04
411 查看
Parity check
Time Limit: 2000MSMemory Limit: 524288KB
Problem Description
Fascinated with the computer games, Gabriel even forgets to study. Now she needs to finish her homework, and there is an easy problem:f(n)=
She is required to calculate f(n) mod 2 for each givenn. Can you help her?
Input
Multiple test cases. Each test case is an integern(0≤n≤) in a single line.
Output
For each test case, output the answer of f(n)mod2.Example Input
2
Example Output
1
题意:
利用菲波那切数列的递推公式,得到f(n),求f(n)%2 的值。思路:
这个题,并不需要求出 f(n),由于n 太大,所以刚开始就没想求出f(n) ,就试着去找找规律(因为结果只有0 或者1)。然后,就发现了如下规律序号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
f(n) | 0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 |
结果 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
AC代码:g++ 0ms
#include<cstdio> //AC G++ 0ms #include<cstring> using namespace std; char str[1000+10]; //数组往往 开大点 int main() { while(scanf("%s",str)!=EOF) { //字符串,多组测试案例输入 int len = strlen(str); int sum=0; for(int i=0; i<len; i++) { sum = sum*10+(str[i]-'0'); sum = sum % 3; //从规律中发现,每 一个循环节是 3 个数 } if(sum == 0) printf("0\n"); else if(sum==1 || sum==2) printf("1\n"); } return 0; }sdut 3901
相关文章推荐
- 山东省第八届ACM省赛 F题 quadratic equation (详解)
- 山东省第八届ACM省赛 I 题(Parity check)
- 山东省第八届ACM省赛 Problem.H triangle
- 山东省第八届ACM省赛A题
- 2017年ACM第八届山东省赛I题: Parity check(判断 第n项斐波那契数列奇偶性)
- 2017 年山东省第八届ACM省赛总结
- 山东省第八届acm省赛 company
- 山东省第八届ACM省赛 K 题 CF 解答(未完,待续)
- 山东省第八届acm省赛A题 博弈
- 山东省第八届acm省赛 Return of the Nim
- 山东省第八届ACM省赛 K 题 CF (排序01背包)
- 山东省第八届ACM省赛C firework
- 山东省第八届acm省赛E题 三分+二分
- 2017山东省第八届ACM省赛 D. HEX(组合数学)
- 山东省第八届acm省赛B题 打表找规律
- 山东省第八届ACM省赛 D.HEX
- 山东省第八届acm省赛D题HEX(组合数学)
- 2017山东省第八届ACM省赛 fireworks(杨辉三角 + 逆元)
- 山东省第八届ACM省赛 G 题 sum of power 解答
- 山东省第八届acm省赛C题 巨坑