zoukankan      html  css  js  c++  java
  • HDU 1005

    问题:将f(n)用数组存储但是不清楚数组该设置多大,同时不知该如何控制输入000时结束输入。在写程序时,直接利用for循环为每个f(n)赋值,忽略了时间复杂度。

    解决:由题目%7得若为一个数7循环两个数为7*7=49循环,前49个计算后面的只需n%49即可对应得出,故只需设置数组大小50,数组a[1]而不是a[0]设置为f(1)为了对应方便;

               000结束输入可用输入循环内部用if000时break;或者return 0;

    程序:

    #include<iostream>
    using namespace std;
    int main(void){
    int a,b,c,s[50];

    while(scanf("%d%d%d",&a,&b,&c)!=EOF){
    if(a==0&&b==0&&c==0) return 0;
    s[1]=1,s[2]=1;
    for(int i=3;i<50;i++){
    s[i]=(a*s[i-1]+b*s[i-2])%7;
    }
    printf("%d ",s[c%49]);
    }
    }

  • 相关阅读:
    如何做竞品分析报告
    软件架构入门
    系统内部矛盾的解决思路
    分表分库一
    Hbase随笔2
    Hbase随笔
    vertica在电信的应用
    理解RESTful架构
    百分点刘译璟
    数据产品的简介
  • 原文地址:https://www.cnblogs.com/slay/p/10388492.html
Copyright © 2011-2022 走看看