posts - 99,  comments - 8,  trackbacks - 0
# include <stdio.h>
# include 
<stdlib.h>
int main ()
{
    
int num1[121];
    
int num2[121];
    
int n;
    
    
while ( scanf ("%d"&n) != EOF )
    
{
          
for ( int i = 0; i <= n; i ++ )  //不要初始化错了 
          {
              num2[i] 
= 0;
              num1[i] 
= 1;           //第一个表达式中的面值组合都是1,所以下面的是从第二个表达式开始 
          }

          
          
for ( int i = 2; i <= n; i ++ )
          
{
              
forint j = 0; j <= n; j ++ )   //注意每一个表达式都是从第 0 项开始  到 第 n 项 
              {
                   
for (int k = 0; k + j <= n; k += i)
                   
{
                       num2[k 
+ j] += num1[j];
                   }

              }

              
              
for (int i = 0; i <= n; i ++)
              
{
                  num1[i] 
= num2[i];   //num2[]  只是起到一个中间保留面值的作用组合的作用,而从下一个表达式开始又要初始化为0  
                  num2[i] = 0;
              }

          }

          
          printf (
"%d\n", num1[n]);
    }

   
// system ("pause");
    return 0;
}

posted on 2010-08-21 20:42 雪黛依梦 阅读(475) 评论(0)  编辑 收藏 引用 所属分类: 母函数

只有注册用户登录后才能发表评论。
相关文章:
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(4)

随笔分类

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜