程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-C語言 遞歸,好像跳不出遞歸循環了,求大神幫忙看看

c語言-C語言 遞歸,好像跳不出遞歸循環了,求大神幫忙看看

編輯:編程解疑
C語言 遞歸,好像跳不出遞歸循環了,求大神幫忙看看

啤酒每罐2.3元,飲料每罐1.9元。小明買了若干啤酒和飲料,一共花了82.3元。我們還知道他買的啤酒比飲料的數量少,請你計算他買了幾罐啤酒。

int num_pi=0;
int num_yin=1;
int money = 823;

int fun(int mon);
int main()
{
    fun(0);
    return 0;
 } 
int fun(int mon)
 {
    if(mon > money)
        return 0;
    if(mon == money && num_pi<num_yin){
            printf("%d\n",num_pi);
            return 0;
     }
     num_pi++;
     fun(mon+23);
     num_yin++;
     fun(mon+19);
 }


最佳回答:


 void foo(int beer, int beverage)
{
    if (beer < 0 || beverage < 0) return;
    if (beer * 23 + beverage * 19 == 823)
    {
        if (beer < beverage)
            printf("%d %d\n", beer, beverage);
    }
    if (beer * 23 + beverage * 19 < 823)
    {        
        foo(beer, beverage + 1);
    }
    else
    {
        foo(beer - 1, beverage);
    }
}
int main()
{
    foo(823 / 23, 0);
}
caozhy
baby00qi
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved