• 整数划分问题


    // 整数s划分展示

    #include <stdio.h>

    void main()

    { int s,i,j,k,t,u; 

      static int a[21][800][21];

      printf("  input s(s<=20):"); scanf("%d",&s);

      a[2][1][1]=1;a[2][1][2]=1;a[2][2][1]=2;

      u=2;

      for(k=3;k<=s;k++)

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

           { a[k][j][1]=1;           

             for(t=2;t<=k;t++)         // 实施在k-1所有划分式前加1操作  

                a[k][j][t]=a[k-1][j][t-1];    

           }

         for(i=u,j=1;j<=u;j++)

           if(a[k-1][j][1]<a[k-1][j][2])   // 若k-1划分式第1项小于第2项  

             { i++;               // 第1项加1为k的第i个划分式的第1项  

               a[k][i][1]=a[k-1][j][1]+1;     

               for(t=2;t<=k-1;t++)

                 a[k][i][t]=a[k-1][j][t];

              }

         i++;a[k][i][1]=k;              // k的最后一个划分式为:k=k  

         u=i;

        }

      for(j=1;j<=u;j++)                // 输出s的所有划分式  

        { printf("%3d: %d=%d",j,s,a[s][j][1]);

          i=2;

          while(a[s][j][i]>0)

            {printf("+%d",a[s][j][i]);i++;}

          printf(" ");

         }

     }

     

    // 整数s划分优化递推设计

    #include <stdio.h>

    void main()

    { int s,i,j,k,t,u; 

      static int a[1600][25];

      printf("input s(s<=24):"); 

      scanf("%d",&s);

      a[1][1]=1;a[1][2]=1;a[2][1]=2;u=2;

      for(k=3;k<=s;k++)

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

            { i=k-1;           

              for(t=i;t>=1;t--)        // 实施在k-1所有划分式前加1操作  

                 a[j][t+1]=a[j][t];

              a[j][1]=1;

            }

          for(t=u,j=1;j<=u;j++)

            if(a[j][2]<a[j][3])          // 若k-1划分式第1项小于第2项  

              { t++;

                a[t][1]=a[j][2]+1;    // 第1项加1  

                i=3;

                while(a[j][i]>0)

                   {a[t][i-1]=a[j][i];i++;}

              }

          t++;a[t][1]=k;                // 最后一个划分式为:k=k  

          u=t;

         }

      for(j=1;j<=u;j++)                // 输出所有u个划分式  

        { printf("%3d: %d=%d",j,s,a[j][1]);

          i=2;

          while(a[j][i]>0)

             {printf("+%d",a[j][i]);i++;}

          printf(" ");

       }

    }

  • 相关阅读:
    很老的一篇文章:李翱(伊秀女性网):从程序员到精英站长的跨度
    推荐一款很好用的CSS下拉菜单框架
    网站推广之软文写作与发布技巧
    SEO网站外链接分析工具
    图解几大浏览器的区别(搞笑)
    好文摘抄:极简生活:一来,一去
    南通搜索引擎优化:浅谈国内SEO的发展趋势
    关注程序员健康之——程序员最有效的十大戒烟方法
    [你必须知道的css系列]第一回:丰富的利器:CSS选择符之通配符、类选择符、包含选择符、ID选择符
    [你必须知道的css系列]第一回:冠冕堂皇:CSS的作用及其基本结构
  • 原文地址:https://www.cnblogs.com/liao-pxsoftware15/p/7858362.html
Copyright © 2020-2023  润新知