zoukankan      html  css  js  c++  java
  • 递归

     1 /*#include<stdio.h>
     2 #include<string.h>
     3 
     4 int cur;
     5 int a[20];
     6 
     7 void fun(int n)//不重复递归,即0,1 递归
     8 {
     9     int i;
    10     if(n==cur)
    11     {
    12         for(i=0;i<n;i++)
    13             printf("%d",a[i]);
    14         printf("\n");
    15         return;
    16     }
    17     a[n]=0;
    18     fun(n+1);
    19 
    20     a[n]=1;
    21     fun(n+1);
    22 }
    23 
    24 int main()
    25 {
    26     while(scanf("%d",&cur))
    27     {
    28         memset(a,0,sizeof(a));
    29         fun(0);
    30     }
    31     return 0;
    32 }*/
    33 
    34 
    35 
    36 /*公司发了某商店的购物券1000元,限定只能购买店中的m种商品。每种商品的价格分别为m1,m2,…,要求程序列出所有的正好能消费完该购物券的不同购物方法。
    37 程序输入:
    38 重复递归*/
    39 #include<stdio.h>
    40 #include<string.h>
    41 
    42 int m;
    43 int price[1000];
    44 int cur;
    45 int count[1000];
    46 int ans[1000][1000];
    47 int sum;
    48 int num;
    49 
    50 void fun(int cur,int money)
    51 {
    52     int i;
    53     if(sum==money)
    54     {
    55         for(i=0;i<m;i++)
    56             ans[num][i]=count[i];
    57         ++num;
    58         return;
    59     }
    60     if(sum>money||cur>=m)
    61         return;
    62 
    63     sum+=price[cur];
    64     count[cur]++;
    65     fun(cur,money);
    66 
    67     sum-=price[cur];
    68     count[cur]--;
    69     fun(cur+1,money);
    70 }
    71 
    72 int main()
    73 {
    74     int i,j;
    75     while(scanf("%d",&m))
    76     {
    77         for(i=0;i<m;i++)
    78             scanf("%d",&price[i]);
    79         sum=num=0;
    80         memset(ans,0,sizeof(ans));
    81         memset(count,0,sizeof(count));
    82           fun(0,1000);
    83           printf("%d\n",num);
    84           for(i=num-1;i>=0;i--)
    85           {
    86               for(j=0;j<m;j++)
    87                   printf("%d ",ans[i][j]);
    88               printf("\n");
    89           }
    90     }
    91     return 0;
    92 }
    93     
  • 相关阅读:
    取代iframe,实现页面中引入别的页面
    axios请求
    接口跨域
    es7,es8
    promise
    移动端开发调试工具神器--Weinre使用方法
    资本论第一卷笔记
    2018春季实习生校招面经(一)阿里篇
    linux小实验-考勤模拟程序
    在基于debian的deepin或者Ubuntu上双等号“==”和双中括号“[[]]”不能使用的真相
  • 原文地址:https://www.cnblogs.com/xiaofanke/p/2816069.html
Copyright © 2011-2022 走看看