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.程式截圖