C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[2]: 合計したら特定の数になるのがあるか
(過去ログ 137 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■80852
/ inTopicNo.1)
合計したら特定の数になるのがあるか
▼
■
□投稿者/ a
(1回)-(2016/08/14(Sun) 23:02:40)
分類:[C#]
C#で、
int[] a = { 1, 2, 3, 4, 5};
この中から何個か足して合計が10になる数字を探すには、
どうすればいいのでしょうか?
よろしくお願いします。
引用返信
編集キー/
編集
■80853
/ inTopicNo.2)
Re[1]: 合計したら特定の数になるのがあるか
▲
▼
■
□投稿者/ King
(11回)-(2016/08/15(Mon) 10:42:06)
要素数1〜5毎に組合せを取得して合計をチェック。
引用返信
編集キー/
編集
■80854
/ inTopicNo.3)
Re[1]: 合計したら特定の数になるのがあるか
▲
▼
■
□投稿者/ shu
(904回)-(2016/08/15(Mon) 11:37:02)
■
No80852
(a さん) に返信
> C#で、
> int[] a = { 1, 2, 3, 4, 5};
> この中から何個か足して合計が10になる数字を探すには、
> どうすればいいのでしょうか?
> よろしくお願いします。
aの要素を組み合わせて足した値は1〜15まですべて表現できるので
タイトルの内容をチェックするなら 1≦調べる値≦15で OKです。
10になる組み合わせを調べるなら
すべての要素に対し0または1を掛け足した結果が調べる値になるか
スキャンすればよいです。
引用返信
編集キー/
編集
■80855
/ inTopicNo.4)
Re[1]: 合計したら特定の数になるのがあるか
▲
▼
■
□投稿者/ 魔界の仮面弁士
(819回)-(2016/08/15(Mon) 11:50:07)
■
No80852
(a さん) に返信
> int[] a = { 1, 2, 3, 4, 5};
> この中から何個か足して合計が10になる数字を探すには、
int[] a = { 1, 2, 3, 4, 5 };
int total = 10;
var result = Enumerable.Range(1, ((int)Math.Pow(2, a.Length)) - 1).Select(bit => a.Where((v, idx) => ((bit >> idx) & 1) != 0).ToArray()).Where(r => r.Sum() == total).ToArray();
引用返信
編集キー/
編集
■80862
/ inTopicNo.5)
Re[2]: 合計したら特定の数になるのがあるか
▲
▼
■
□投稿者/ a
(2回)-(2016/08/15(Mon) 19:05:36)
ありがとうございます。
無事解決しました
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-