既出だけど「1時間以内に解けなければプログラマ失格となってしまう5つの問題が話題に」の問題5をJava8でやってみた。 1,2,…,9の数をこの順序で、”+”、”-“、またはななにもせず結果が100となるあらゆる組合せを出力するプログラムを記述せよ。例えば、1 + 2 + 34 – 5 + 67 – 8 + 9 = 100となる public static void main(String[] args) { f(values(1, 9)) .filter(exp -> sum(exp) == 100) .forEach(System.out::println); } /** * sからeまでの連続した数値のリストを返す。 */ static List<Integer> values(int s, int e) { return IntStream.rangeClosed(s, e) .m
![Java8で「ソフトウェアエンジニアならば1時間以内に解けなければいけない5つの問題」の5問目を解いてみた - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e5e6b841a9bdb288191fb7223f848eb5ccbe5fe1/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9SmF2YTglRTMlODElQTclRTMlODAlOEMlRTMlODIlQkQlRTMlODMlOTUlRTMlODMlODglRTMlODIlQTYlRTMlODIlQTclRTMlODIlQTIlRTMlODIlQTglRTMlODMlQjMlRTMlODIlQjglRTMlODMlOEIlRTMlODIlQTIlRTMlODElQUElRTMlODIlODklRTMlODElQjAxJUU2JTk5JTgyJUU5JTk2JTkzJUU0JUJCJUE1JUU1JTg2JTg1JUUzJTgxJUFCJUU4JUE3JUEzJUUzJTgxJTkxJUUzJTgxJUFBJUUzJTgxJTkxJUUzJTgyJThDJUUzJTgxJUIwJUUzJTgxJTg0JUUzJTgxJTkxJUUzJTgxJUFBJUUzJTgxJTg0NSVFMyU4MSVBNCVFMyU4MSVBRSVFNSU5NSU4RiVFOSVBMSU4QyVFMyU4MCU4RCVFMyU4MSVBRTUlRTUlOTUlOEYlRTclOUIlQUUlRTMlODIlOTIlRTglQTclQTMlRTMlODElODQlRTMlODElQTYlRTMlODElQkYlRTMlODElOUYmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTUxYmNiZWVlOWUxYjU4OGQzNzg2NTQ0MDc1MjllOGY1%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB0YWcxMjE2JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1jNTA1ZmQyN2UxNTRmYmQzNGQ4M2M2OGNmOGQwOTQ2NQ%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Df5b3cf5fa2652ee89ad14fdb251de4fb)