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 ...
随机推荐
- python 多线程小方法
import time from multiprocessing import Process, Lock, JoinableQueue from multiprocessing import Sem ...
- 浏览器通知--window.Notification
参考链接:http://blog.csdn.net/guoquanyou/article/details/51726571 Web Notifications是HTML5 的一个特性,目前我知道的有谷 ...
- day 8 - 1 文件操作
文件操作 注意: 1. r+ 最为常用 2.encoding 的编码格式一定要与文件编码格式一致 读取 r rb #在本地创建 txt 格式的文件默认使用 gbk 格式 f = open('e:/p ...
- mysql 原理 ~ DDL之mdl锁
一 简介: MDL锁 二 具体 1 MDL锁 1 增删查改 申请MDL读锁 2 ddl语句 1. 拿MDL写锁 2. 降级成MDL读锁 3. 真正做DDL ...
- ORA-03113: end-of-file on communication channel 磁盘慢,数据库启动失败
磁盘慢,数据库启动失败:解决思路:1.让数据文件offline: 2.删除表空间 SQL> startup pfile='/server/oracle/admin/test/pfile/init ...
- 为Oracle GoldenGate准备数据库
了解如何为Oracle GoldenGate准备数据库,包括如何配置连接和日志记录,如何在数据库中启用Oracle GoldenGate,如何设置闪回查询以及如何管理服务器资源. 为集成进程配置连接 ...
- HBSX2019 3月训练
Day 1 3月有31天废话 今天先颓过了就只剩30天了 初步计划 每天一道字符串/数据结构题 图论学习 根据<若干图论模型探讨>(lyd)复习 二分图与网络流学习 <算法竞赛进阶指 ...
- CF1096D Easy Problem
题目地址:CF1096D Easy Problem 比赛时高二dalaoLRZ提醒我是状压,然而,我还是没AC (汗 其实是一道很基础的线性dp \(f_{i,j}\) 表示序列第 \(i\) 个字符 ...
- SpringSecurity实现短信登录功能
⒈封装短信验证码类 package cn.coreqi.security.validate; import java.time.LocalDateTime; public class Validate ...
- yum install mariadb安装数据库开启不了
centos7内置的MySQL镜像已经放弃Oracle公司的MySQL,改用MySQL的分支数据库mariaDB,使用以下安装mariadb: yum install mariadb 然后使用命令sy ...