杭电1005.找规律就好

2023-10-27

本题连接:点击打开链接

Number Sequence

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 170439    Accepted Submission(s): 42050


Problem Description
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
 

Author
CHEN, Shunbao
 

Source
 

Recommend
JGShining   |   We have carefully selected several similar problems for you:   1071  1006  1007  1425  1205 
 

PS:本人ACM小白第一次玩CSDN,现在代码功底并不好,有错误请大家多多指教。

题意:已知:f1=f2=1,当n>=3时,f(n)=A*f(n-1)+B*f(n-2);现给出A,B,n的值,其中 (1 <= A, B <= 1000, 1 <= n <=100,000,000),求f(n)的值。

解题关键:找到规律,一看n的取值最大可到100,000,000,就应该要想到不能直接用数组来做,必须找到它的循环周期。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{

    int i,a,b,n;
    while(~scanf("%d%d%d",&a,&b,&n)&&(a+b+n))//当(a+b+n)均为0时退出
    {
        int s[101]= {0,1,1};                //每次都初始化数组
        for(i=3; i<100; i++)
        {
            s[i]=(a*s[i-1]+b*s[i-2])%7;         //计算数组s[3]之后的值
            if(s[i]==s[2]&&s[i-1]==s[1])        //本题关键,找到循环周期。
                break;                          //找到周期后直接退出循环
        }
        //printf("%d\n",i-2);
        n=n%(i-2);                          //周期为(i-2)
        if(n!=0)
            printf("%d\n",s[n]);
        else
            printf("%d\n",s[i-2]);
    }
    return 0;
}



}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

杭电1005.找规律就好 的相关文章

  • hdu 4405 Aeroplane chess

    Problem acm hdu edu cn showproblem php pid 4405 vjudge net contest 151678 problem R Reference bbs csdn net topics 380193
  • 字符串、字符数组的截取函数:strncpy、strsub

    字符数组的截取函数 字符串截取函数
  • 第八十七题 UVa12166 Equilibrium Mobile

    A mobile is a type of kinetic sculpture constructed to take advantage of the principle of equilibrium It consists of a n
  • 【刷题】华为笔试面试机考 [HJ5] - 进制转换

    题目地址 点击跳转 题目描述 写出一个程序 接受一个十六进制的数 输出该数值的十进制表示 输入描述 输入一个十六进制的数值字符串 注意 一个用例会同时有多组输入数据 请参考帖子https www nowcoder com discuss 2
  • 贪心算法之田忌赛马(超详细)

    简述 手把手教会贪心算法之田忌赛马 超详细 题目 田忌赛马 田忌和齐王赛马 两人各出n匹马 赢一场比赛得200两银子 输了赔200银子 平局不赔不赚 已知两人每匹马的速度 问田忌最多能赢多少银子 多组测试数据 每组数据的第一行是一个整数n
  • 鸽巢原理(初识)(纯算法)

    http www docin com p 1352185354 html 一 什么是 鸽巢原理 抽屉原理 若把n个物体放在n 1个抽屉中 至少有一个抽屉中放了两个物体 二 特点 只能用于解决存在性问题 三 例题 例一 在边长为1的三角形放5
  • Kattis Doors

    Problem open kattis com problems doors vjudge net contest 183886 problem B Reference 点到线段的最短距离算法 Meaning 有两个球 Alex 和 Bob
  • hdu 5818 Joint Stacks 2016 Multi-University 7

    Problem acm hdu edu cn showproblem php pid 5818 官方题解 bestcoder hdu edu cn blog 2016 multi university training contest 7
  • HDU 1042 N!大数乘法

    N Time Limit 10000 5000ms Java Other Memory Limit 262144 262144K Java Other Total Submission s 69 Accepted Submission s
  • STL之vector的使用一(初始化vector)

    简介 vector可用于代替C中的数组 或者MFC中的CArray 从许多说明文档或者网上评论 一般一致认为应该多用vector 因为它的效率更高 而且具备很好的异常安全性 而且vector是STL推荐使用的默认容器 除非你知道你有特殊需要
  • c编程:求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和。

    求出4 4矩阵中最大和最小元素值及其所在行下标和列下标 求出两条主对角线元素之和 include
  • stl_set

    begin 返回指向第一个元素的 迭代器 clear 清除所有元素 size 集合中元素的数目 count 返回某个值元素的个数 empty 如果集合为空 返回true 真 end 返回指向最后一个元素之后的迭代器 不是最后一个元素器 in
  • Buncket Sort桶排序(c++)实现代码

    代码原理我就不说了 参考 算法导论 原书第三版 p112 直接上代码会不会很爽 ConsoleApplication1 cpp 定义控制台应用程序的入口点 This programme is designed to show the Bun
  • Codeforces-1454E Number of Simple Paths(基环树-思维)

    题目大意 给你n个点 n条边 求图中简单路径的个数 题目思路 n个点n条边 那么图中一定有一个环 拿这个图来讲 我们将两点间的关系分为4种 1 两点都在环上 简单路径的个数为2 例如2与5 2 一个点在环上一个点不在环上 简单路径个数为2
  • 数的划分(递归)

    整数划分是另外的问题 题目描述 Description 将整数n分成k份 且每份不能为空 任意两种划分方案不能相同 不考虑顺序 例如 n 7 k 3 下面三种划分方案被认为是相同的 7 1 1 5 7 1 5 1 7 5 1 1 问有多少种
  • [ACM] 1016 Prime Ring Problem (深度优先搜索)

    Prime Ring Problem Problem Description A ring is compose of n circles as shown in diagram Put natural number 1 2 n into
  • ACM-子串(字符串处理)

    问题描述 有一些由英文字符组成的大小写敏感的字符串 请写一个程序 找到一个最长的字符串 x 使得 对于已经给出的字符串中的任意一个 y x 或者是 y 的子串 或者 x 中的字符反序之后得到的新字符串是 y 的子串 输入数据 输入 输入的第
  • GYM-102920-L. Two Buildings(决策单调性+分治)

    题目链接 题目大意 求一段序列的 h i h j j i 的最大值 step1 转化一下题意 h i h j j i h j h i j i 令a i h i b i h i 然后全部转化为两种坐标 i a i i b i 这样题目就转化成
  • 小技巧粗讲 - 用栈实现括号匹配的判断

    Codeforces上有一道我曾经讲过的题 买看过的小伙伴看这个链接 https blog csdn net ericgipsy article details 79980874 然后再来一道题 http www fjutacm com P
  • Ugly Numbers

    题目描述 Ugly numbers are numbers whose only prime factors are 2 3 or 5 The sequence 1 2 3 4 5 6 8 9 10 12 shows the first 1

随机推荐

  • 又一款 AI 应用开源了,让你的绘画作品动起来!

    这是 进击的Coder 的第 824 篇技术分享 作者 小 G 来源 GitHubDaily 阅读本文大概需要 4 分钟 2021 年的时候 Meta 前身是 Facebook 团队发布了一款非常有趣的 AI 工具 叫 Animated D
  • Excel根据出生日期判断生肖,Leo老师来教你!

    在工作学习中 我们经常会遇到Excel根据出生日期判断生肖这样的问题 列夫托尔斯泰说过 人生不是一种享乐 而是一桩十分沉重的工作 因此 面对Excel根据出生日期判断生肖我们应该有努力探索的精神 成功的人千方百计 失败的人千难万险 对于这个
  • python虚拟环境安装使用

    conda下操作 1 查看已经安装的虚拟环境 conda env list 2 创建 conda create n your env name 3 进入虚拟环境 conda activate your env name 4 退出虚拟环境 c
  • 09.二叉树

    09 二叉树 1 树型结构 1 1概念 树是一种非线性的数据结构 它是由n n gt 0 个有限结点组成一个具有层次关系的集合 把它叫做树是因为它看起来像一棵倒挂的树 也就是说它是根朝上 而叶朝下的 它具有以下的特点 有一个特殊的结点 称为
  • 最小二乘法与伪逆矩阵

    一 简介 最小二乘法是一种数学优化技术 通过最小化误差的平方和寻找数据的最佳函数匹配 利用最小二乘法可以简便地求得未知的数据 并是得这些求得的数据与实际数据之间误差的平方和最小 二 最小二乘法拟合直线的原理 1 假设存在n个坐标点 他们的坐
  • C语言的四种程序结构

    1 顺序结构 顺序结构的程序设计是最简单的 只要按照解决问题的顺序写出相应的语句就行 它的执行顺序是自上而下 依次执行 例如 a 3 b 5 现交换a b的值 这个问题就好像交换两个杯子水 这当然要用到第三个杯子 假如第三个杯子是c 那么正
  • anaconda python未激活_anaconda无法激活新建环境,提示没有那个文件或目录

    遇到的问题 最新在部署tensorflow 但是由于cpu型号比较老的原因 所以直接pip安装tensorflow会提示core dump 吐核 所以需要使用conda来建立一个新的环境 然后使用conda来安装tf即可解决吐核问题 但是有
  • 高效实现延迟消息功能

    高效实现延迟消息功能 高效延时消息 包含两个重要的数据结构 1 环形队列 例如可以创建一个包含3600个slot的环形队列 本质是个数组 2 任务集合 环上每一个slot是一个Set 同时 启动一个timer 这个timer每隔1s 在上述
  • Unity2D入门(七):物理材质、跳跃、基础UI

    一 物理材质 游戏角色在跳跃过程中如果正面碰撞到地形就会卡在上面 所以需要为其添加一种材质 在Assets窗口中 右键 gt 新建一个物理材质 不用做其他的调整 将其拖拽到Player Inspector窗口中的BoxCollider组件的
  • Python测试框架pytest(17)参数化parametrize

    目录 1 参数 2 装饰测试类 3 多个参数化装饰器 4 参数化 传入字典数据 5 标记参数化 6 解决unicode编码问题 pytest mark parametrize 允许在测试函数或类中定义多组参数和 fixtures 参数化场景
  • Stream流

    Stream流的常见生成方式 Stream流中间操作之filter Stream流的常见中间操作方法 Stream流终结操作之forEach count Stream流的收集操作 Stream流的常见生成方式 Stream流的使用 生成流
  • SpringBoot错误: 找不到或无法加载主类

    1 一般出现这种情况都是配置文件application properties出现的问题 2 可以尝试 maven clean install 以及rebuild project 3 删除项目里 idea文件 重新导入至IDEA编辑器 选择M
  • vs2010中臃肿的ipch和sdf文件

    使用VS2010建立C 解决方案时 会生成SolutionName sdf和一个叫做ipch的文件夹 这两个文件再加上 pch等文件使得工程变得非常的庞大 一个简单的程序都会占用几十M的硬盘容量 可惜毕竟硬盘还没有廉价到免费的地步 那么 该
  • 绘图系统二:多图绘制系统

    文章目录 坐标轴控件 坐标系控件 绘制多组数据 源代码 本文基于 从0开始实现一个三维绘图系统 坐标轴控件 三个坐标轴xyz从外观上看其实毫无区别 这种标签和输入框的组合十分常见 为了便于调用 最好实现一个类 tkinter只要继承Fram
  • MyBatis-Plus中的逻辑删除使用

    系列文章目录 Mybatis Plus SpringBoot结合运用 心态还需努力呀的博客 CSDN博客MyBaits Plus中 TableField和 TableId用法 心态还需努力呀的博客 CSDN博客 MyBatis Plus分页
  • 如何通过C语言自动生成MAC地址

    如何通过C语言自动生成MAC地址 最近在做虚拟机项目时 需要给创建的每一个虚拟机自动生成一个MAC地址 由于MAC地址为48位 而且格式是以 隔开的 所以下面我写了一个c程序 来自动生成MAC地址 MAC c include
  • solidity实现智能合约教程(5)-NFT拍卖合约

    文章目录 1 介绍 2 主要功能 3 代码示例 4 部署测试 猛戳订阅学习专栏 solidity系列合约源码 解析 1 介绍 拍卖作为历史悠久的交易方式 具有规范化 市场化的特点 在经济活动中扮演着重要角色 以其公开 公平 公正的价格发现功
  • unity动态加载(1)Resources加载方法

    在开发过程中我们很可能需要使用到动态加载 这样一方面可以节省性能 另一方面使我们的开发过程更加便捷 我之前写过一篇游戏中音效控制器 可以很方便的播放音效 就是用Resources 传送门 大家如果有兴趣可以参考 然后这篇博客实现以下使用Re
  • [推荐] (SqlServer)批量清理指定数据库中所有数据

    在实际应用中 当我们准备把一个项目移交至客户手中使用时 我们需要把库中所有表先前的测试数据清空 以给客户一个干净的数据库 如果涉及的表很多 要一一的清空 不仅花费时间 还容易出错以及漏删 在这儿我提供了一个方法 可快捷有效的清空指定数据库所
  • 杭电1005.找规律就好

    本题连接 点击打开链接 Number Sequence Time Limit 2000 1000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission