HDU - 1021ACM
来源:互联网 发布:重生网络女主播txt 编辑:程序博客网 时间:2024/06/06 11:59
这个题目很简单了,就是斐波那契数列~
至于直接加的方法应该会超时的(没试,不过应该会超时)。
所以用矩阵快速幂的方法(假如不知道快速幂怎么做,请看我上面的博客:http://blog.csdn.net/alps1992/article/details/42131581)
就比较简单了~ 其实就是构造矩阵。
代码如下:
//// main.cpp// hdu_1021//// Created by Alps on 14/12/28.// Copyright (c) 2014年 chen. All rights reserved.//// Fibonacci Again// There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).//Input//Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000).//Output//Print the word "yes" if 3 divide evenly into F(n).//Print the word "no" if not.#include <iostream>using namespace std;int MultiMatrix(int a[2][2], int b[2][2]){ int temp[2][2]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { temp[i][j] = a[i][0]*b[0][j] + a[i][1]*b[1][j]; } } for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { a[i][j] = temp[i][j]; } } return a[0][0];}int main(int argc, const char * argv[]) { int n; int ans; while (scanf("%d",&n) != EOF) { if (n == 0 || n == 1) { printf("no\n"); continue; } n -= 1; int cp[2][2] = {1,0,0,1}; int init[2][2] = {1,1,1,0}; int matrix[2][2] = {11,7,7,4}; while (n & 1) { MultiMatrix(cp, init); MultiMatrix(init, init); n = n>>1; } ans = MultiMatrix(matrix, cp); if (ans % 3 == 0) { printf("yes\n"); }else{ printf("no\n"); } } return 0;}
0 0
- HDU - 1021ACM
- ACM HDU 1021 Fibonacci Again
- hdu-acm
- 杭电ACM--HDU-1021斐波拉契
- HDU ACM 2111 Saving HDU
- hdu acm hdu 2115 Java
- ACM HDU 1000
- ACM HDU 1001
- ACM HDU 1002
- ACM HDU 1004
- HDU ACM 1198
- hdu acm 2100 Lovekey
- hdu acm 1913 Computers
- ACM HDU 1003
- ACM HDU 1009
- HDU ACM 1058
- HDU ACM 1257
- HDU ACM 1506
- CentOS 防火墙设置
- leetcode做题总结,题目Longest Substring Without Repeating Characters
- GoogleCpp风格指南 5) 其他特性_part1
- 【Pattern Recognition and Machine Learning】p10-11 Mathematical notations
- leetcode做题总结,题目Simplify Path 71
- HDU - 1021ACM
- hdu2143
- Struts2 result type(结果类型)
- Struts2中从一个action内部跳转到另一个action,怎么配置xml
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
- 史上最快Android模拟器:Genymotion使用教程
- leetcode做题总结,题目Multiply Strings 43
- Android多渠道打包解决方案(兰贝壳儿)
- 网上商城项目知识点1