題目:
從9到1 9個數, 相鄰的兩個數可以連在一起, 只使用加 和 減號連線, 使這些函式加起來的總和等於100; 例如 98 + 7 - 6 + 5 - 4 + 3 - 2 - 1 = 100.
當然 可以由98 76 等等多過兩位數, 本來是找幾種, 要問的是看有多少種這樣的組合? 大家怎麼寫**啊?
演算法:呵呵,
我的思路:
1)定義類似字串"9*8*7*6*5*4*3*2*1",其中'*'為'+'、'-'、'|'之一,'|'是佔位符,無意義。
3)群舉8個'+'、'-'、'|'的排列。
2)將字串中的'|'去掉。
3)計算字串。
將原題轉換為僅有+-運算的字串的計算。
**:我也貼乙個,說下方法
將1~3^8對映成運算子序列。
#include
#include
#include
using namespace std;
string build_expr(const string& expr, int ops)
}return ret;
}int compute(const string& expr)
if (!isdigit(expr[i]) || i == sz - 1)
else
right = 0;
op = expr[i];}}
return ret;
}int main(void)
}return 0;
}
由乙個小學五年級暑假作業想到的演算法問題
從9到1 9個數,相鄰的兩個數可以連在一起,只使用加 和 減號連線,使這些函式加起來的總和等於100 例如 98 7 6 5 4 3 2 1 100.當然 可以由98 76 等等多過兩位數,本來是找幾種,要問的是看有多少種這樣的組合?大家怎麼寫 啊?krh2001 邊城浪子 include int ...
白楊 袁鷹 五年級下冊課文
火車窗外是茫茫的大戈壁,沒有山,沒有水,也沒有人煙。天和地的界限也並不那麼清晰,都是渾黃一體。從哪兒看得出列車在前進呢?那就是沿著鐵路線的一行白楊樹。每隔幾秒鐘,窗外就飛快地閃過乙個高大挺秀的身影。一位旅客正望著這些戈壁灘上的衛士出神。爸爸,大孩子搖著他的腿,你看那樹多高!爸爸並沒有從沉思中回過頭來...
一道小學五年級的數學題引發的一些思考
表弟暑假在我家做作業,問我一道題 學學習 學習進 學習進步 2 0 0 1 四個字各代表乙個0 9的數字,問 學習進步 代表多少。我很驚訝在小學作業中就出現這種題,這道題即使在現在的大學演算法課上也會作為一道智力題來考大家,很多人都答不上來 因為這道題需要很強的邏輯思維能力。這道題的答案是1802。...