Xcode寫C++(程序練習6:尋找1808的可能組合)

在一個陌生的國度,有5種不同的硬幣單位:15、23、29、41和67(分)。尋找所有組成18元8分(即1808分)的可能組合。假定對於所有面值的硬幣你都有足夠的硬幣。

利用窮舉法羅列出所有的可能。

#include <iostream>
int Fun()
{
    int count = 0;
    for(int i1=0;i1<=1808/15;i1++)
    {
        for(int i2=0;i2<=1808/15;i2++)
        {
            if(i1*15+i2*23>1808)
            {
                continue;
            }
            for(int i3=0;i3<=1808/15;i3++)
            {
                if(i1*15+i2*23+i3*29>1808)
                {
                    continue;
                }
            for(int i4=0;i4<=1808/41;i4++)
            {
                if(i1*15+i2*23+i3*29+i4*41>1808)
                {
                    continue;
                }
            for(int i5=0;i5<=1808/67;i5++)
                       {
                           if(i1*15+i2*23+i3*29+i4*41+i5*67==1808)
                           {
                               printf("15:%d,23:%d,29:%d,41:%d,67:%d\n",i1,i2,i3,i4,i5);
                               count++;
                           }
                           else if(i1*15+i2*23+i3*29+i4*41+i5*67>1808)
                           {
                               continue;
                           }
                       }
                }
            }
        }
    }
    return count;
}
int main()
{
    printf("%d\n",Fun());
}

輸出結果總共有19551種
在這裏插入圖片描述

源代碼如下:
#include
int Fun()
{
int count = 0;
for(int i1=0;i1<=1808/15;i1++)
{
for(int i2=0;i2<=1808/15;i2++)
{
if(i115+i223>1808)
{
continue;
}
for(int i3=0;i3<=1808/15;i3++)
{
if(i115+i223+i329>1808)
{
continue;
}
for(int i4=0;i4<=1808/41;i4++)
{
if(i1
15+i223+i329+i441>1808)
{
continue;
}
for(int i5=0;i5<=1808/67;i5++)
{
if(i1
15+i223+i329+i441+i567==1808)
{
printf(“15:%d,23:%d,29:%d,41:%d,67:%d\n”,i1,i2,i3,i4,i5);
count++;
}
else if(i115+i223+i329+i441+i5*67>1808)
{
continue;
}
}
}
}
}
}
return count;
}
int main()
{
printf("%d\n",Fun());
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章