zoukankan      html  css  js  c++  java
  • hd acm 1297

    问题:n个人排队,要求女生不能单独站,可以全是男生,可以全是女生。

    例子:n=7,FFFF,FFMM,FFFM,MFFF,MMFF,MMMM,MFFM(F代表女生,M代表男生)。

    代码:(来自 蓝飞技术部落格的神秘力量)

    #include<stdio.h>

    int main(){

      int n,i,j;

      int f[1001][101] = {0};

      f[0][1] = 1;

      f[1][1] = 1;

      f[2][1] = 2;

      f[3][1] = 4;

      for( i = 4; i < 1001; ++i){

        for( j = 1; j < 101; ++j){

          f[i][j] += f[i - 1][j] + f[i - 2][j] + f[i - 4][j];//数组的每一位相加

          f[i][j + 1] += f[i][j] / 10000;//超过4位的部分保存至数组下一位中

          f[i][j] %= 10000;//每位数组只保存其中4位

         }

      }

      while(scanf("%d", &n) != EOF){

          int k = 100;

        while(!f[n][k--]);//排除前面为空的数组

        printf("%d", f[n][k + 1]);//输出结果的前四位

        for(; k > 0; --k){

          printf("%04d", f[n][k]);//输出其余的所有四位数字,若数字小于四位,则前面用0填充

        }

         printf(" ");

      }

    return 0;

    }

    他没有用字符数组解决大数运算,而是将每个大数拆成一个个的小数存在整型数组中,收下在下的膝盖ToT。

  • 相关阅读:
    学习进度笔记13
    学习进度笔记12
    学习进度笔记11
    学习进度笔记10
    学习进度笔记9
    《架构之美》读书笔记1
    学习进度笔记8
    电话拨号盘(带触摸振动反馈)
    堆排序(小根堆)
    图论起步(长期更新)
  • 原文地址:https://www.cnblogs.com/clljs/p/7459002.html
Copyright © 2011-2022 走看看