天天看點

微軟買書問題

1.算法思想

先用枚舉法把依次把每種情況從大到小寫出來,結果就會發現到8的時候情況就發生變化,以10為1個輪回,除10取餘。

2.代碼

#include<iostream>
using namespace std;
#define N 100
int n;
void main()
{
    cout << "請輸入你要購買的書的數目:";
    cin >> n;
    int i,j;
    i = n % 10;
    j = (n - i) / 10;
    if (i == 8)
    {
        if (j == 0)
        {
            cout << "應該購買5卷中任意4卷,每卷" << 2 << "本";
        }
        else
        {
            cout << "先買5種不同的卷各" << 2 * j << "本,再挑4種不同的卷每卷" << 2 << "本";
        }
    
    }
    else if (i == 0)
    {
        cout << "應該購買5卷,每卷" << 2*j << "本";
    }
    else if (i == 1)
    {
        if (j == 0)
        {
            cout << "應該購買5卷中任意1卷"<< 1 << "本";
        }
        else
        {
            cout << "先買5種不同的卷各" << 2 * j << "本,再購買5卷中任意1卷" << 1 << "本";
        }
    }
    else if (i == 2)
    {
        if (j == 0)
        {
            cout << "應該購買5卷中任意2卷每卷" << 1 << "本";
        }
        else
        {
            cout << "先買5種不同的卷各" << 2 * j<< "本,再購買5卷中任意2卷每卷" << 1 << "本";
        }
    }
    else if (i == 3)
    {
        if (j == 0)
        {
            cout << "應該購買5卷中任意3卷每卷" << 1 << "本";
        }
        else
        {
            cout << "先買5種不同的卷各" << 2 * j << "本,再購買5卷中任意3卷每卷" << 1 << "本";
        }
    }
    else if (i == 4)
    {
        if (j == 0)
        {
            cout << "應該購買5卷中任意4卷每卷" << 1 << "本";
        }
        else
        {
            cout << "先買5種不同的卷各" << 2 * j << "本,再購買5卷中任意2卷每卷" << 1 << "本";
        }
    }
    else if (i == 5)
    {
        if (j == 0)
        {
            cout << "應該購買5卷每卷" << 1 << "本";
        }
        else
        {
            cout << "買5種不同的卷各" << 2 * j +1<< "本";
        }
    }
    else if (i == 6)
    {
        if (j == 0)
        {
            cout << "應該購買5卷每卷" << 1 << "本,再任意購買1卷1本";
        }
        else
        {
            cout << "先買5種不同的卷各" << 2 * j +1<< "本,再任意購買1卷1本";
        }
    }
    else if (i == 7)
    {
        if (j == 0)
        {
            cout << "應該購買5卷每卷" << 1 << "本,再任意購買2卷每卷1本";
        }
        else
        {
            cout << "先買5種不同的卷各" << 2 * j + 1 << "本,再任意購買2卷每卷1本";
        }
    }
    else if (i == 9)
    {
        if (j == 0)
        {
            cout << "應該購買5卷每卷" << 1 << "本,再任意購買4卷每卷1本";
        }
        else
        {
            cout << "先買5種不同的卷各" << 2 * j + 1 << "本,再任意購買4卷每卷1本";
        }
    }
}      

3.程式截圖