description
有n個士兵站成一佇列, 現在需要選擇幾個士兵派去偵察。輸入格式為了選擇合適的士兵, 多次進行如下操作: 如果佇列超過三個士兵, 那麼去除掉所有站立位置為奇數的士兵,
或者是去除掉所有站立位置為偶數的士兵。直到不超過三個戰士,他們將被送去偵察。現要求統計按這樣的方法,
總共可能有多少種不同的正好三個士兵去偵察的士兵組合方案。
注: 按上法得到少於三士兵的情況不統計。
1 <= n <= 2的32次方-1
有多行(可能有上百行,盡量優化**),每行乙個數字n,最後一行是0輸出格式
對每一行的數字n,輸出針對n的方案數輸入樣例直到沒有數字
1040輸出樣例
20
每次除去奇數字置或者偶數字置,即遞迴時返回奇數字置的遞迴和偶數字置的遞迴的和即可,為減少運算次數,可將已算過的存入陣列,下次再遇見這個數時可直接返回陣列裡面的值
#include#includeusing namespace std;
int d[100000000]; //儲存已經算過的n
int f(int n)
}int main()
return 0;
}
1142 巡邏的士兵
該題有題解 時間限制 1000ms 記憶體限制 65536k 提交次數 217 通過次數 58 題型 程式設計題 語言 g gcc 有n個士兵站成一佇列,現在需要選擇幾個士兵派去偵察。為了選擇合適的士兵,多次進行如下操作 如果佇列超過三個士兵,那麼去除掉所有站立位置為奇數的士兵,或者是去除掉所有站立...
scauoj 1142 巡邏的士兵
有n個士兵站成一佇列,現在需要選擇幾個士兵派去偵察。為了選擇合適的士兵,多次進行如下操作 如果佇列超過三個士兵,那麼去除掉所有站立位置為奇數的士兵,或者是去除掉所有站立位置為偶數的士兵。直到不超過三個戰士,他們將被送去偵察。現要求統計按這樣的方法,總共可能有多少種不同的正好三個士兵去偵察的士兵組合方...
SCAU 1142 巡邏的士兵
時間限制 1000ms 長度限制 10kb 提交次數 217 通過次數 58 題型 程式設計題 語言 g gcc description 有n個士兵站成一佇列,現在需要選擇幾個士兵派去偵察。為了選擇合適的士兵,多次進行如下操作 如果佇列超過三個士兵,那麼去除掉所有站立位置為奇數的士兵,或者是去除掉所...