美文网首页
sicily_1029 Rabbit

sicily_1029 Rabbit

作者: 我什么都不知道呀 | 来源:发表于2015-10-20 17:52 被阅读135次

    标签: sicily 高精度计算

    题目链接: http://soj.sysu.edu.cn/1029

    思路

    高精度加法来递推结果,数组足够长就可以了。

    代码

    // Problem#: 1029
    #include<stdio.h>
    #include<string.h>
    int main() {
      int i, m, d;
      long long all0[100 + 1], all1[100 + 1];
      while (scanf("%d %d", &m, &d) && m) {
        memset(all0, 0, sizeof(all0));
        memset(all1, 0, sizeof(all1));
        for (i = 1, all0[0] = 1; i <= d; i++) {
          if (i + 1 - m > 0) {
            all1[i] = all1[i - 1] + all1[i - m]
              + (all0[i - 1] + all0[i - m]) / 10000000000000000;
            all0[i] = (all0[i - 1] + all0[i - m]) % 10000000000000000;
          } else {
            all0[i] = all0[i - 1] + 1;
          }
        }
        if (all1[d]) printf("%lld%016lld\n", all1[d], all0[d]);
        else printf("%lld\n", all0[d]);
      }
    }
    

    相关文章

      网友评论

          本文标题:sicily_1029 Rabbit

          本文链接:https://www.haomeiwen.com/subject/omazcttx.html