1005:Number Sequence(hdu,数学规律题)
Problem Description
f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.
Given A, B, and n, you are to calculate the value of f(n).
1 2 10
0 0 0
5
#include<iostream>
using namespace std;
int main()
{
int f[];
int a, b, n;
while (cin >> a >> b >> n, a != && b != && n != )
{
int i;
f[] = , f[] = ;
for (i = ; i < ; i++)
{
f[i] = (a*f[i - ] + b * f[i - ]) % ;
if (f[i] == && f[i - ] == ) break;
}
i -= ;
if (i > n)
{
cout << f[n] << endl;
continue;
}
n = n % i;
if (n == ) n = i;
cout << f[n] << endl;
}
return ;
}
大佬代码:http://www.cnblogs.com/kuangbin/archive/2011/07/26/2117381.html #include<stdio.h>
int main()
{
//freopen("test.in","r",stdin);
//freopen("test.out","w",stdout);
int A,B,i;
long n;
int f[];
f[]=f[]=;
while(scanf("%d %d %ld",&A,&B,&n))
{
if(A==&&B==&&n==) break;
int cnt=;
for(i=;i<=;i++)//打表找到周期
{
f[i]=(A*f[i-]+B*f[i-])%;
if(f[i]==&&f[i-]==)break;
if(f[i]==&&f[i-]==){cnt=;break;}//这里有个小陷阱,如果A=7,B=7则后面都为0了
}
if(cnt){printf("0\n");continue;}
if(i>n){printf("%d\n",f[n]);continue;}
i-=;//i为周期
n%=i;
if(n==)n=i;
printf("%d\n",f[n]);
}
return ; }
这题完全参考大佬的代码改良;
凉凉;;;;;;;;;
数据量小,一些不合适的没在测试数据不在里面
1005:Number Sequence(hdu,数学规律题)的更多相关文章
- HDU 1005 Number Sequence(找规律)
链接:传送门 题意:略 思路:f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7 -> f(n) = (A * f(n-1)%7 + B * f(n-1)%7) ...
- HDU 1005 Number Sequence(数论)
HDU 1005 Number Sequence(数论) Problem Description: A number sequence is defined as follows:f(1) = 1, ...
- HDU - 1005 Number Sequence 矩阵快速幂
HDU - 1005 Number Sequence Problem Description A number sequence is defined as follows:f(1) = 1, f(2 ...
- HDU 1005 Number Sequence(数列)
HDU 1005 Number Sequence(数列) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- 1005 Number Sequence(HDU)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 Number Sequence Time Limit: 2000/1000 MS (Java/O ...
- HDU1005 Number Sequence(找规律,周期是变化的)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1005 Number Sequence Time Limit: 2000/1000 MS (Java/O ...
- hdu 1005:Number Sequence(水题)
Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDU 1005 Number Sequence【斐波那契数列/循环节找规律/矩阵快速幂/求(A * f(n - 1) + B * f(n - 2)) mod 7】
Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDU 1005 Number Sequence【多解,暴力打表,鸽巢原理】
Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
随机推荐
- HashMap 底层分析
以下基于 JDK1.7 分析 如图所示,HashMap底层是基于数组和链表实现的,其中有两个重要的参数: ---容量 ---负载因子 容量的默认大小是16,负载因子是0.75,当HashMap的siz ...
- MySQL基本命令(待更新...)
数据库操作SQL语句 show databases; 表操作SQL语句 数据库权限操作SQL语句 参考链接 :http://www.cnblogs.com/bzys/archive/2013/01/2 ...
- 解决微信小程序使用switchTab跳转后页面不刷新的问题
wx.switchTab({ url: '../index/index', success: function(e) { var page = getCurrentPages().pop(); if ...
- 20165231 2017-2018-2 《Java程序设计》第5周学习总结
教材学习内容总结 第七章 内部类 在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类. 内部类的类体中不可以声明类变量和类方法.外嵌类的类体中可以用内部类声明对象,作为外嵌 ...
- Nest + typeorm
1\ Nest (https://nestjs.com/) is a framework for building efficient, scalable Node.js web appli ...
- 工程师死绝的世界答案-python3版
エンジニアが死滅シタ世界|アンドロイドとふたりぼっちで生きろ. 荒れ果てた警察署 [MISSION LEVEL: D] 难度D 题目要求: あなたは 0 から 9 の数字を 3 つ入力すると開く扉を開 ...
- CFtpConnection Class
CFtpConnection Class 1.链接http://technet.microsoft.com/zh-cn/office/2kywsafk(v=vs.80) 2.测试ftp可以用这个地 ...
- windows命令行获取时间
在写Windows批处理脚本时,常常需要获取系统日期.时间戳记,用作文件名.文件夹名.log等等. 本文介绍了如何获取自订的系统日期.时间戳记. 首先,在Windows中,系统日期由以下参数获得: % ...
- js和thinkphp5路由拼接一个实例
$.ajax({ type:"get", dataType:"json", url:"/home/index/ajax_page_data/cate_ ...
- <TCP/IP>链路层小结
图片和部分内容转载自Chang Zhao 这章大致介绍了以太网,以太网帧的格式,网桥和交换机,无线局域网(Wi-Fi),点到点协议,MTU(最大传输单元)的知识点,所谓链路,在此可以解释为 IP数 ...