hd acm1005

问题:

已知递推公式:f[i] = ( a * f[i-1] + b * f[i-2] ) % 7,f[1]=1,f[2]=1。

需要你输入三个数a,b,n。其中a,b用来补充上述公式,用补充后的公式计算 f[n]。

析:

每次输入a,b都会有一个对应的公式,由这个公式会得到的一个周期性的数列,然后利用这个周期来计算f[n]便可以了。所以如何找到周期是重点,因为每个周期开始时前两个数字会是1,1,这可以是一个标志,当然别的标志也可以;另外需要注意一点,如果a,b都能整除7,那么从f[3]向后都会成为0,可以直接结束。

代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int a,b,i,n,flag;
  int f[201]={1,1,1};
  while(scanf("%d%d%d",&a,&b,&n))

  {
    if(!(a||b||n)) break; //a,b,n全是0时结束循环
    flag=0;
    for(i=3;i<=200;i++)

    {
      f[i]=(a*f[i-1]+b*f[i-2])%7;
      if(f[i]==1&&f[i-1]==1     //找到周期时结束
        if(i>3) break;      //防止出现1,1,1,1,1,1,1......1,1......的情况
      if(a%7==0&&b%7==0)      //如果a,b都能整除7,则f[3]之后的全为0,直接输出并结束
      {   

         flag=1;
         break;
      }
    }
     if(flag){
      printf("0\n");
      continue;
    }
       i-=2;               //i-2是周期。
    n%=i;
   if(!n) n=i;
     printf("%d\n",f[n]);
  }
return 0;
}

时间: 08-28

hd acm1005的相关文章

怎么用HD Tune检测硬盘坏道

HD Tune软件不仅小巧而且很易使用,是一款检测电脑硬盘的优良工具.不仅是电脑硬盘,包括移动硬盘在内一样可以检测.那么,如何使用HD Tune呢?如何使用HD Tune检测磁盘坏道呢? 工具/原料 HD Tune软件一枚 使用HD Tune检查硬盘坏道 1.百度搜索下载HD Tune软件,注意:尽量选择系统之家官网上下载这类软件,因为系统之家上的软件不会捆绑的流氓软件 2.软件打开之后,界面如图,最上方显示硬盘的厂家信息,图示红色遮挡区 3.点击选项卡切换至错误扫描,如图,然后在红框位置,尽量

uva 12452 Plants vs. Zombies HD SP (树DP)

Problem I: Plants vs. Zombies HD Super Pro Plants versus Zombies HD Super Pro is a game played not a grid, but on a connected graph G with no cycles (i.e., a tree). Zombies live on edges of the tree and chew through edges so that tree falls apart! Pl

OSX: 解决10.10 Yosemite Developer Preview 2安装后的Recovery HD看不见的问题

OS X 10.10 Yosemite Developer Preview 2,下面简称10.10DP2,安装之后,有可能出现10.10的恢复盘(Recovery HD)看不见的问题.这是因为它的一个设置错误,下面我们用比较直观的方法来解决它. 这是修复后的启动选项,其中显示的Recovery-10.10 清楚点的 首先,开启磁盘工具的Debug菜单. 无论是从哪个磁盘启动,都可以操作,运行下面命令: defaults write com.apple.DiskUtility DUDebugMen

Radeon HD 7850 vs Radeon R9 270X

Radeon HD 7850 vs Radeon R9 270X HW compare Intro The Radeon HD 7850 comes with a GPU core speed of 860 MHz, and the 2048 MB of GDDR5 RAM runs at 1200 MHz through a 256-bit bus. It also is made up of 1024 SPUs, 64 Texture Address Units, and 32 Raster

JWPlayer支持SD/HD

First, we have to render two versions of our video: an SD (standard definition) and HD (high definition) one. Since the newer iPads, iPhones and Androids all play 720p video, let’s use that as the HD version. Full HD (1080p) is still a bit overkill,

电影TS/TC/SCR/R5/BD/HD版本意思收集(转)

一.版本说明: 1.CAM(枪版) CAM通常是用数码摄像机从电影院盗录.有时会使用小三角架,但大多数时候不可能使用,所以摄像机会抖动.因此我们看到画面通常偏暗人物常常会失真,下方的 字幕时常会出现倾斜. 由于声音是从摄像机自带的话筒录制,所以经常会录到观众的笑声等声音.因为这些因素,图象和声音质量通常都很差. 2.TS(准枪版) TS是TELESYNC的缩写.TS与CAM版的标准是相同的.但它使用的是外置音源(一般是影院座椅上为听力不好的人设的耳机孔)这个音源不能保证是好的音源,因为受到很多背

千里之堤毁于蚁穴(慎用HD Wallets)

转自:http://blog.sina.com.cn/s/blog_12ce70a430102vbu9.html -- 随机系列谈之四 现在我们都该明白,无论怎样强调随机对于比特币的重要性都不为过,随机的确称得上是比特币的“命根子”.在过去的几篇文章中,小太已经介绍过了一些因随机问题可能导致私钥暴漏的情况,今天,我再跟大家聊聊分层确定性(Hierarchical Deterministic)钱包. HD Wallets因其“只需要一个主(根)私钥,就能生成海量子私钥”这个特性广受欢迎,在过去的一

Intel HD Graphics 620 (华硕FL5900U) Windows7下安装显卡驱动

我们的牙膏大厂Intel,不但会挤牙膏,现在连驱动也不给你用了.KabyLake也就是第七代酷睿处理器,集成了Intel HD Graphics 620核显,核显(显卡)驱动程序只支持到Win10这一个系统,之前的Win8,Win8.1,Win7等,统统不支持.而华硕的FL5900U这款笔记本,就使用I7-7500U,刚好是第七代酷睿,集成了620核显. 还好伟大的YouTube上有人发出了如何在Win7下安装驱动的方法,具体如下: 下载Zip格式的驱动,解压缩,找到Graphics文件夹,找到

OSX: 命令行制作U盘Recovery HD

使用命令行操作,非常easy,可是操作不当非常危急! 免责声明:假设操作不当造成的数据丢失,本人概不负责. 为什么? 不是有OSX恢复磁盘助理嘛?是的.假设仅仅想使用GUI的软件.能够去苹果官方站点:http://support.apple.com/kb/DL1433?viewlocale=zh_CN 唯一的原因就是:生命不息,折腾不止:只是还有另外一个诱因,就是看看究竟官方的恢复磁盘助理的原理,换句话说,用自己的办法达到相同的效果. 前提:你有一个工作的Recovery HD,你的Mac支持U

hd acm2035

求A^B的最后三位数表示的整数.说明:A^B的含义是"A的B次方" 思路:后三位只跟后三位相乘有关,所以可以每乘一次都对1000取余. 代码: #include <stdio.h>#include <stdlib.h> int main(){ int result,i,m,n; while(scanf("%d%d",&m,&n)!=EOF&&(m||n)) { result=1; for(i=0;i<n;