(找循环节)Number Sequence

题目:

A number sequence is defined as follows:

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).
Input
The input consists of multiple test cases. Each test case contains 3 integers A, B and n on a single line (1 <= A, B <= 1000, 1 <= n <= 100,000,000). Three zeros signal the end of input and this test case is not to be processed.
Output
For each test case, print the value of f(n) on a single line.
Sample Input
1 1 3
1 2 10
0 0 0
Sample Output
2
5

参考https://blog.csdn.net/hurmishine/article/details/51333005

为什么循环结是49?
很简单,因为
f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.
=A * f(n - 1)mod 7 + B * f(n - 2)mod 7
7的余数可能有:0 1 2 3 4 5 6
所以A * f(n - 1)mod 7有7种情况
B * f(n - 2)mod 7有7种情况
那么整体就有7*7种情况

所以以后遇见这种mod小的,用循环结做就ok

参考代码:

#include <iostream>
using namespace std;
int arr[50];
int main()
{int n,a,b;arr[1]=arr[2]=1;while(cin>>a>>b>>n){if(a==0&&b==0&&n==0)break;int minn=n<50?n:50;//一个小小的优化for(int i=3; i<=minn; i++){arr[i]=(a*arr[i-1]+b*arr[i-2])%7;}cout<<arr[n%49]<<endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git获取管理员权限 windows,windows下git怎么管理权限

一、安装软件&#xff1a;msysGit-fullinstall-1.8.1.2打开之后设置安装路径&#xff0c;默认为C:\msysgit&#xff0c;如图&#xff1a;注意&#xff1a;如果要自定义安装路径&#xff0c;请不要安装在带有空格的路径以及含有中文的路径下点击“OK”以后开始安装&#xff0c;首…

(lucas) Saving Beans

题目&#xff1a; Although winter is far away, squirrels have to work day and night to save beans. They need plenty of food to get through those long cold days. After some time the squirrel family thinks that they have to solve a problem. They suppose that…

java applet程序设计,Java Applet程序设计基础

Java Applet程序设计基础Java Applet 是用Java 语言编写的一些小应用程序&#xff0c;这些程序是直接嵌入到页面中&#xff0c;由支持Java的浏览器(IE 或 Nescape)解释执行能够产生特殊效果的程序。它可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页被称为Java…

(矩阵快速幂)解所有类似Fibonacci 的题目

Description In the Fibonacci integer sequence, F0 0, F1 1, and Fn Fn − 1 Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequence are: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … An alternative formula for the Fibonacci sequence is Gi…

java ssm框架登录代码,求一个SSM框架登录功能的源码,要求能运行成功

[XML] 纯文本查看 复制代码<?xml version"1.0" encoding"UTF-8"?>xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:aop"http://www.springframework.org/schema/aop"xmlns:context"http://www.springframewo…

php getdbused,PHP之购物车

该文章记录了购物车的实现代码&#xff0c;仅供参考book_sc_fns.phpinclude_once(output_fns.php);include_once(book_fns.php);include_once(db_fns.php);include_once("user_auth_fns.php");include_once("admin_fns.php");include_once("data_vali…

java中spring的web支持nio,Spring WebClient NIO功能和问题域,与Spring Webflux一起使用

我正在使用最新版本的Spring - Spring 5 .我正在开发http客户端的WebService“聚合器”&#xff0c;有点像路由请求到外部WebServices&#xff0c;接收响应后接收响应&#xff0c;做一些数据操作并回复我的HTTP服务的客户端 .为了在我的应用程序中创建http客户端&#xff0c;我…

2018.9.15,Arduino—流水灯实验报告

实验任务和目的 通过Arduino控制LED形成流水灯效果 实验条件 Arduino UNO&#xff0c;面包板&#xff0c;6个LED&#xff0c;6个220Ω电阻 实验过程和结果 实验详细步骤&#xff1a; 在各LED正极和Arduino引脚之间串联一个限流电阻&#xff0c;并将LED负极与Arduion的GND相连 …

php封装redis类,php封装redis操作类

Redis系列-key相关主要操作函数_数学_自然科学_专业资料。这篇 blog 主要总结下,redis 中跟 key 相关的常用函数 1)keys 语法:keys pattern 解释:查找所有匹配指定......Redis 实现分析网易杭研——胡炜 OUTLINE ? REDIS的内部实现(基于2.8.7)––––––––– 单线程模型的…

liunx php apache2,linux apache2部署php

android-plugmgr源代码分析android-plugmgr是一个Android插件加载框架,它最大的特点就是对插件不需要进行任何约束.关于这个类库的介绍见作者博客,市面上也有一些插件加载框架,但是感觉没有这个好.在这篇文章中,我 ...JS延时提示框p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; fon…

2018.9.10.Matlab实验一:熟悉Matlab开发环境

一、实验任务和目的 1. 熟悉Matlab的系统环境及基本操作方法。 2. 掌握Matlab的搜索路径及其设置方法。 3. 熟悉Matlab的帮助信息的查阅方法。 二、实验内容 1. 熟悉 Matlab 工作界面的多个常用窗口的及使用方法。 熟悉Command windows、Workspace、Command history、C…

2018.9.10.Matlab实验二:Matlab基本运算

实验二&#xff1a;Matlab基本运算 一、实验任务和目的 1. 掌握变量的定义与数据类型。 2. 掌握变量的初始化方法。 3. 掌握数组、多维数组与子数组的定义、存储、赋值、变换。 4. 掌握逻辑数组的用法。 5. 熟悉MATLAB常用的函数、常用标点和快捷键。 二、实验内容 1. …

php进程数是指什么,25.查看php 某个服务的进程数

查看进程就是使用ps命令而已&#xff0c;只不顾ps的参数太多了。使用php查询的话&#xff0c;必须要开启几个函数(可以执行外部程序的函数)&#xff0c;参考官网&#xff1a;http://php.net/manual/zh/book.exec.php下面是在php进程中查询某个服务创建的进程数&#xff0c;比如…

2018.9.15,Matlab实验三:字符串、单元数组和结构体

一、实验任务和目的 掌握Matlab的字符串常用函数及其操作方法。掌握Matlab的结构体的基本操作方法。掌握Matlab的元胞数组的基本操作方法。 二、实验内容字符串数组Str[‘hopes, dreams, hold up, old up’]&#xff0c;查找’O’出现的次数和位置。现有三个字符串变量s1“i”…

c++ 不能分配给为0的数组_【嵌入式C】你有想过quot;数组下标quot;为何从0开始吗?...

1、聊一聊相信大家都有看过电影&#xff0c;今天所分享的是其经典背景音乐&#xff0c;或许音乐响起你又会想起那条单纯、善良的秋田犬&#xff01;今天跟大家聊聊一个有意思的话题&#xff0c;C中的数组下标为啥是从0开始?或者说为什么现在大部分的编程语言都会选择从0开始索…

oracle解析md5,Oracle中的MD5加密详解

一、技术点1、 DBMS_OBFUSCATION_TOOLKIT.MD5DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数&#xff0c;但偶在使用select DBMS_OBFUSCATION_TOOLKIT.MD5(input_string >abc) a from Dual时&#xff0c;却有错误提示&#xff0c;看来该函数只能直接在程序包中调用&…

2018.9.19.Matlab实验四:Matlab程序设计

一、实验任务和目的 熟悉程序设计思想。掌握伪代码的编写方法。掌握分支语句和循环结构的用法。 二、实验内容 输入一个百分制成绩&#xff0c;要求输出成绩等级A、B、C、D、E&#xff0c;其中90-100为A&#xff0c;80-89为B&#xff0c;70-79为C&#xff0c;60-69为D&#…

sata接口 图解 定义_SATA协议简介

SATA协议简介1、概述本文档主要介绍SATA的发展历程以及SATA相关协议&#xff0c;为后续SATA驱动框架分析做基础知识准备。2、SATA简介2.1 SATA发展历程2.1.1 PATA硬盘PATA硬盘叫做并行ATA硬盘(Parellel ATA)。为了限制其信号放大系统产生的高噪声&#xff0c;常采用高达5V的电压…

oracle 修改2个表,oracle学习笔记2:创建修改表

1.创建表CREATE TABLE ORDERINFO(ORDERID NUMBER(*, 0) NOT NULL, ORDERCODE VARCHAR2(20 BYTE) NOT NULL, USERID NUMBER(*, 0) NOT NULL, MOBILEPHONE VARCHAR2(20 BYTE) NOT NULL, ADDRESS VARCHAR2(128 BYTE) NOT NULL, PRODUCTNUMERIC NUMBER(*, 0) DEFAULT (0) NOT NULL,…