プログラミングのお題スレ Part13

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/02/03(日) 11:21:53.20ID:72eosYJ+
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
https://mevius.2ch.net/test/read.cgi/tech/1538096947/
2019/02/22(金) 21:49:55.63ID:2ARSyvEs
>>279
>>289
Common Lispで~#[...~]を使ってみた
(format t "~{~S~#[~; and ~:;, ~]~}" '(apple banana orage mango))
2019/02/22(金) 22:00:24.05ID:py41/SAb
こういう文章題好き。
でも実力不足で解けない…
a*かな?
2019/02/22(金) 22:05:57.76ID:AX8XyL13
>>313 Perl5

use bignum (l=>GMP);

$n = 1;
$n *= $_ for 2..21;

print "$n\n";


実行例
~ $ perl 13_313.pl
51090942171709440000
2019/02/22(金) 22:26:00.12ID:eQxt3fSm
>>313 JavaScript
console.log((f=n=>n?n*f(n-1):1)(21))
2019/02/23(土) 00:16:14.24ID:KCAwaSn8
>>313 Smalltalk-76

https://imgur.com/a/a7MClxL
2019/02/23(土) 00:27:48.65ID:khwKgkQE
>>313 python
#階乗1
import math
print('階乗1',math.factorial(21))

#階乗2
def f(n): return f(n - 1)*n if n > 1 else n
print('階乗2',f(21))

#階乗3
print('階乗3',(lambda x:f(21))( globals().update({"f": lambda n: n*f(n - 1) if n > 2 else n })))
323デフォルトの名無しさん
垢版 |
2019/02/23(土) 01:14:20.46ID:9pS68leH
>>279
Kotlin script
最後のカンマを正規表現の文字列置換で and にしただけ。

println(listOf("abc", "def", "xyz").joinToString(", ").replace(",([^,]*)$".toRegex(), " and$1"))

出力

abc, def and xyz
2019/02/23(土) 01:19:01.99ID:CTQXI+x5
lispって組み込みで素数かどうか判定するやつ提供されてるのか、、、面白い!
325デフォルトの名無しさん
垢版 |
2019/02/23(土) 02:10:15.51ID:9pS68leH
>>313
bc

n = 2; for (i = 3; i <= 21; i++) n*=i; n

出力
51090942171709440000
2019/02/23(土) 03:31:27.03ID:nkO3lkCA
>>313 dc

~$ echo 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ********************p | dc

51090942171709440000
2019/02/23(土) 03:32:49.90ID:R2s6jSV3
bcのってjsでもそのまま動くんだな。どっちもc由来文法だからか…
for(i=s=1;i<22;)s*=i++;s
2019/02/23(土) 04:30:09.37ID:R2s6jSV3
>>326
恥ずかしながらdcコマンド知らなかった…いいねこれ。
~$ echo "$(seq -s' ' 1 21)$(printf '* %.0s' {1..20})p" | dc
51090942171709440000
329デフォルトの名無しさん
垢版 |
2019/02/23(土) 08:05:10.28ID:xK8/Ze+A
>>313 Maxima
print(21!);
2019/02/23(土) 08:20:33.48ID:znXlogg7
>>313
;; Common Lisp
(loop for i from 1 to 21 for r = i then (* r i) finally (print r))
2019/02/23(土) 08:45:55.53ID:DQY5g4De
>>316
これは、本格的だな

ダイクストラ・A* みたいな、順位キュー(priority queue)を使わないと、いけないかも
2019/02/23(土) 09:18:55.19ID:IBS/n4EE
>>313
Smalltalk (Pharo 7)
21 factorial
==> 51090942171709440000
2019/02/23(土) 12:01:13.29ID:+GfRG2y6
>>316 Java
https://ideone.com/ZhJHKg
2019/02/23(土) 12:26:35.61ID:DQY5g4De
>>313
Ruby

( 1..21 ).inject( 1, :* )
2019/02/23(土) 12:44:52.28ID:W0y17tlk
python3
標準ライブラリ内の数学関数の例
import math
print(math.factorial(21))
そうじゃない例
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,22)))

ちょっと高度化したお題
素数階乗n#を実装せよ
ただし素数階乗とは与えられた整数n以下のすべての素数の積である

1#=1
3#=4#=6
5#=30
2019/02/23(土) 13:22:30.58ID:R2s6jSV3
例がちょっと意味分からない
1#=1
1以下の素数の積なのに1?
3#=4#=6
何これ?
5#=30
これだけ分かる
2019/02/23(土) 13:25:18.18ID:R2s6jSV3
あ、二番目分かりました。
一行目だけ分からない
2019/02/23(土) 13:28:26.15ID:+GfRG2y6
>>335 Java
https://ideone.com/4M3U1T
2019/02/23(土) 13:34:54.53ID:vMXU7Bcc
>>337
掛けるもののがないときは1として扱うのが普通だよ
0!とかΠの項数が0の時とか

ただこの出題者はそのへん理解してないだろうから解く気がしない
2019/02/23(土) 13:40:09.27ID:R2s6jSV3
>>339
ありがとう。
数学と同じとは限らないんだね。
1も素数としてやってみます。
2019/02/23(土) 13:47:45.99ID:+eBVT+rm
>>340
1を素数と見做すんじゃなく空積の1
2019/02/23(土) 13:53:12.99ID:W0y17tlk
というか数学でも0!=1!=1と定義されているのが普通だと思うし
高校でも大学でもそうじゃない問題を見たことがないのだが
2019/02/23(土) 13:53:38.08ID:vMXU7Bcc
>>340
いや、むしろ数学の世界での慣習なんですけど…
344デフォルトの名無しさん
垢版 |
2019/02/23(土) 14:28:11.89ID:DQY5g4De
単位元(初期値)だろ。
足し算は0、掛け算は1 が、単位元

Ruby で、
( 1..21 ).inject( 1, :* )

1 が初期値で、:* で掛け算メソッドを渡している
2019/02/23(土) 15:02:20.95ID:R2s6jSV3
>>342
> ただし素数階乗とは与えられた整数n以下のすべての素数の積である

と書いてあるので、

「与えられた整数n」が1
のとき、
「与えられた整数n以下のすべての素数の積」
は、
「1以下のすべての素数の積」
となり、
1以下に素数はないのになんで例で答がが1になってるんだろう、と思った次第です。
お騒がせしました。
2019/02/23(土) 15:15:16.07ID:R2s6jSV3
できた
JavaScript
const prodPrimes = n => {
const primes = [1];
for (let m = n; m > 1; m--) {
let prime = 0;
for (let i = 2; i <= m - 1; i++) {
if (m % i === 0) prime = i;
}
primes.push(prime || m);
}
return [...new Set(primes)].reduce((acc, p) => acc * p);
}
console.log(prodPrimes(1)); //=> 1
console.log(prodPrimes(3)); //=> 6
console.log(prodPrimes(4)); //=> 6
console.log(prodPrimes(5)); //=> 30

今夜はPythonで>>316に挑戦したい
347デフォルトの名無しさん
垢版 |
2019/02/23(土) 15:45:56.58ID:xK8/Ze+A
>>335 J
f =: 3 : 0
*/ 1 , I. 1 p: i. >:y
)

f@> 1 3 4 5 21
1 6 6 30 9699690
2019/02/23(土) 15:50:44.94ID:5fn4St+r
Jどこで覚えればいいの?
Effective J的な読みやすい書籍ないの?
349デフォルトの名無しさん
垢版 |
2019/02/23(土) 16:01:13.49ID:BD+5EZ0V
>>313 Common Lisp
(defun ! (n)
  (apply #'* (loop for i from 1 upto n collect i)))

CL-USER> (! 21)
51090942171709440000
CL-USER> (! 0)
1
CL-USER>
2019/02/23(土) 16:18:41.85ID:Z/STDkD0
>>335 ruby
https://ideone.com/ccP7e9
2019/02/23(土) 17:50:18.29ID:oGmxRysL
>>321
これただのお絵描きやん
規制しろ!
2019/02/23(土) 18:00:12.84ID:5fn4St+r
でかいキノコやらしい…
2019/02/23(土) 18:14:04.27ID:2kPF298z
>>316 Perl5 Dijkstra法による最短経路探索 (priority queueを用いない実装)
https://ideone.com/XcsBQe
2019/02/23(土) 20:22:19.99ID:ejRNWGjN
>>316
python(pypy) https://ideone.com/DV1w4s

本線: キュー使用したダイクストラ (+ 経路復元)。

サンプル程度なら、ワーシャルフロイド(頂点^3)でも回る、と同方も追加。
さすがにpythonには少々きつく、pypyに逃げた。
2019/02/24(日) 00:49:59.19ID:ROsmA06r
>>354 pypy に逃げたという話は、その方がかなりスピードが早いからという事? どの位のスピード差になるんだろう?
356デフォルトの名無しさん
垢版 |
2019/02/24(日) 01:37:12.40ID:jRfp9b62
>>313
Kotlin script

println("%.0f".format((2..21).map { it.toDouble() }.reduce { n1, n2 -> n1 * n2 }))
2019/02/24(日) 01:45:28.46ID:W3fm5ADB
>>355
何も変えずpython3で実行 https://ideone.com/IArwja

約6秒 vs 約0.2秒

まぁ、本当はpython3向けにもう少し治せそうだが
2019/02/24(日) 05:55:10.72ID:xnYazQgz
お題: 3分タイマーを作れ。3分間待って、音を鳴らすか、画面に「BEEP!」と表示せよ。ただし、CPU時間を無駄に消費してはならない。
2019/02/24(日) 06:09:09.10ID:xnYazQgz
お題: スリープソートを実装せよ。
2019/02/24(日) 06:27:08.15ID:xnYazQgz
お題: 玉入れ競争のシミュレーションを作れ。1チームに玉50個で園児3人。2チームある。園児それぞれが10秒に玉1個投げる。
一回投げると、3秒後に1/2の確率で玉が入る。イベントのたびに「チーム#1の園児#1が玉を投げました」「チーム#2の園児#1の玉が入りました」などと表示する。
2019/02/24(日) 07:40:28.45ID:lq3Vey6S
>>313
@Mathematica

ライブラリ版
Factorial[21]

非ライブラリ版
Range[21] // Apply[Times, #] &
2019/02/24(日) 08:11:35.91ID:UKaroUbg
>>335
Smalltalk (Pharo 7)
[:n | (Integer primesUpTo: n+1) inject: 1 into: [:p :x | p * x]] value: 5
==> 30
2019/02/24(日) 08:39:28.32ID:lq3Vey6S
>>335
@Mathematica
Range[5] // Select[#, PrimeQ] & // Apply[Times, #] &
364デフォルトの名無しさん
垢版 |
2019/02/24(日) 08:59:23.56ID:k3GW1oFG
お題
与えられた文字列を縦に表示する

入力
hello

出力
h
e
l
l
o
2019/02/24(日) 09:18:40.92ID:FkqnBGPg
>>364
ruby -e "'hello'.split('').each do |c| puts c end"
2019/02/24(日) 09:39:23.28ID:UNsYm68I
>>364 octave
https://ideone.com/MZvdVC
2019/02/24(日) 10:41:19.01ID:gbE7FXAb
>>364 Perl5

~ $ echo -n hello | perl -naF -E 'say for @F'
h
e
l
l
o
2019/02/24(日) 10:45:19.09ID:gbE7FXAb
>>358 Perl5

sleep 3*60;
print "BEEP!\n";
2019/02/24(日) 10:51:12.60ID:5XYYe3Vz
>>346
Pythonじゃ緩すぎだろw
Brainfu*kとかJで挑戦したいと言わないと
世のマゾヒスト達からマサカリ投げられるぞw
2019/02/24(日) 11:01:40.94ID:gbE7FXAb
>>359 Perl5

use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";

use threads;

use threads::shared;
my @b: shared;

sub f {
&nbsp;&nbsp;my $n = shift;
&nbsp;&nbsp;sleep $n;
&nbsp;&nbsp;push @b, $n;
}

push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;

print "sorted ) @b\n";

実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5
2019/02/24(日) 11:04:08.38ID:gbE7FXAb
>>370 しまった、&nbsp;がそのまま表示されている…orz 全角スペースに置換して修正
>>359 Perl5

use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";

use threads;

use threads::shared;
my @b: shared;

sub f {
 my $n = shift;
 sleep $n;
 push @b, $n;
}

push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;

print "sorted ) @b\n";

実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5
2019/02/24(日) 14:09:41.21ID:UKaroUbg
Smalltalk (Pharo 7)
String cr join: 'hello'
==> 'h
e
l
l
o'
2019/02/24(日) 14:14:37.55ID:lq3Vey6S
>>364
@Mathematica

"hello" // Characters // Riffle[#, "¥n"] & // StringJoin
2019/02/24(日) 14:37:33.43ID:ke/CY5a3
>>351
いや、21 factorialをSmalltalk-76で実際に計算したものですよ!
動画にしたほうがよかったですか?^^;
2019/02/24(日) 15:44:30.88ID:R6DRM9b9
>>335 Squeak Smalltalk (このコードは Pharo では動かない)

| fn |
fn := [:n | (Integer primesUpTo: n + n isPrime asBit) inject: 1 into: #*].
#(1 3 4 5) collect: fn. "=> #(1 6 6 30) "
2019/02/24(日) 15:56:11.32ID:R6DRM9b9
>>364 Squeak Smalltalk (同じく Pharo とは互換性がないコードで)

'hello' joinSeparatedBy: Character cr.

"= 'h
e
l
l
o' "
2019/02/24(日) 16:12:06.37ID:ke/CY5a3
>>359 Pharo/Squeak Smalltalk

| sleepsort |
sleepsort := [:arr |
| queue |
queue := SharedQueue new.
arr do: [:x | [(x * 2) milliSeconds asDelay wait. queue nextPut: x] fork].
(1 to: arr size) inject: #() into: [:acc :idx | acc, {queue next}]
].

sleepsort value: #(2 1 5 10 7 8 3 6 4 9)

"=> #(1 2 3 4 5 6 7 8 9 10) "
2019/02/24(日) 17:18:42.39ID:+6ZRRI/z
>>358 puthonista ( iPhone )

# iPhoneのシステムサウンドを使ってアラームを出す。
import sound,time

alarm = '/System/Library/Audio/UISounds/alarm.caf'
time.sleep(3*60)
id = sound.play_effect(alarm)
2019/02/24(日) 17:40:55.70ID:+6ZRRI/z
>>378 pythonista の間違い。
2019/02/24(日) 19:37:23.57ID:Wf3q+Rvy
>>359 Bash

#!/usr/bin/bash

N=5

IFS=$'\n'
a=(`seq $N | shuf | sed -e 's/\([0-9]\+\)/(sleep \1; echo \1 >> result)/'`)
IFS="$'\n'$'\t' "

[ -f ./result ] && rm ./result
for s in "${a[@]}"; do
 echo "$s"
 sh -c "${s}" &
done

wait
cat ./result


~ $ sh 13_359.sh
(sleep 2; echo 2 >> result)
(sleep 5; echo 5 >> result)
(sleep 4; echo 4 >> result)
(sleep 1; echo 1 >> result)
(sleep 3; echo 3 >> result)
1
2
3
4
5
381デフォルトの名無しさん
垢版 |
2019/02/25(月) 02:16:17.34ID:VuzBCyor
>>364
Kotlin script

while (readLine()?.map { it }?.joinToString("\n")?.let { println(it); it } != null);
382デフォルトの名無しさん
垢版 |
2019/02/25(月) 02:42:58.27ID:VuzBCyor
>>358
sh

sleep 180 ; echo 'BEEP!'
2019/02/25(月) 02:47:11.29ID:yxDnlxm5
>>364
ruby -e "'hello'.each_char do |c| puts(c) end"
2019/02/25(月) 02:47:19.11ID:qxzw13Bf
お題: スリープと複数のスレッドを使って素数を10個求めよ。1つのスレッドは素数倍数のループを意味する。
2019/02/25(月) 03:51:24.00ID:qxzw13Bf
>>384
ヒント: 一秒ごとにリセットするカウンターを使う。
386デフォルトの名無しさん
垢版 |
2019/02/25(月) 09:19:02.25ID:KMrhrKmq
意味がわからん
2019/02/25(月) 10:35:33.17ID:OZaxYFd4
模範解答があるんでしょ
だからヒントを作れる
なら最初から正解を出せと
2019/02/25(月) 10:52:58.23ID:mBiroDnU
このコテうぜえから書き込み禁止にしろ
389デフォルトの名無しさん
垢版 |
2019/02/25(月) 11:25:48.34ID:4jlXoier
スリープタイマに番号付けてON/OFF出来ればエラトステネスの篩で素数が出来る。
390デフォルトの名無しさん
垢版 |
2019/02/25(月) 17:25:13.53ID:KMrhrKmq
わかんないからちょっとやってみて
391デフォルトの名無しさん
垢版 |
2019/02/25(月) 18:50:50.58ID:IURODyYm
>>364 J
smoutput@>'hello'
2019/02/25(月) 19:00:24.37ID:mboQc3Dn
>>364 JavaScript
[...'hello'].forEach(c=>console.log(c))
または
for(let c of 'hello')console.log(c)
または
console.log([...'hello'].join`\n`)
393デフォルトの名無しさん
垢版 |
2019/02/26(火) 01:01:25.98ID:ZoqutRDZ
>>364 Ruby
puts "Hello".split("")
2019/02/26(火) 02:14:00.16ID:Jyzj3K2Z
お題:OS名を出力する
395デフォルトの名無しさん
垢版 |
2019/02/26(火) 02:51:12.85ID:lsok3PaS
>>394
Linux等、UNIX系OSの場合コマンドラインから以下を入力するだけで GNU/Linux 等と出てくるが、
どうしてもプログラムにしたいのならシェルスクリプトの中でこれだけ実行するようにしておけばよい。

uname -o
396デフォルトの名無しさん
垢版 |
2019/02/26(火) 02:53:03.78ID:lsok3PaS
>>394
Windows のコマンドプロンプトの場合はこれ。ただしバージョンも一緒に出てくる。

ver

これもどうしてもプログラムにしたいならバッチファイルでこれだけ実行するようにしておけばよい。
2019/02/26(火) 07:52:39.56ID:xb9W0X9p
pythonista

import os,sys

print(os.uname() )
# posix.uname_result(sysname='Darwin', nodename='iPhoneXsMAX', release='18.2.0', version='Darwin Kernel Version 18.2.0: Wed Dec 19 20:28:53 PST 2018; root:xnu-4903.242.2~1/RELEASE_ARM64_T8020', machine='iPhone11,6')

print(os.uname()[0],os.uname()[4],sys.platform )
# Darwin iPhone11,6 ios

from distutils.util import get_platform

print(get_platform())
# darwin-18.2.0-iPhone11,6
398デフォルトの名無しさん
垢版 |
2019/02/26(火) 08:17:26.80ID:N21l9DY8
>>394 J
osname =: 3 : 0
a =. 9 !: 12 y
if. a = 5 do. 'unix'
else. a = 6 do. 'windows'
else. do. 'other'
end.
)
399デフォルトの名無しさん
垢版 |
2019/02/26(火) 10:23:47.93ID:E0EMtjG2
>>394
Perl5

print "$^O\n";
400デフォルトの名無しさん
垢版 |
2019/02/26(火) 15:46:59.25ID:N21l9DY8
>>364 Lua
io.write((io.read("*a"):gsub(".","%0\n")))
2019/02/26(火) 15:54:05.05ID:gjK+vdjr
お題: 任意のn-オミノを全種類出力するプログラム
2019/02/26(火) 15:55:57.75ID:IBhh82RD
>>364
標準出力から与えられる場合
import sys
for x in sys.stdin.read() : print(x)

>>394と混合
import os
for x in os.getenv("OS"): print(x)
2019/02/26(火) 18:05:30.42ID:KX5s2hIr
>>384 Squeak/Pharo Smalltalk

| tick start primes sema sieveMaker processes ans |
tick := 1 second.
start := DateAndTime now.
primes := SharedQueue new.
sema := Semaphore new.
sieveMaker := [:x | [[(tick * x) asDelay wait. sema signal] repeat]].
processes := SharedQueue new.
tick asDelay wait.
processes nextPut: [
[ tick asDelay wait.
sema isSignaled ifFalse: [
| prime sieve |
prime := primes nextPut: (DateAndTime now - start / tick) asInteger.
sieve := sieveMaker value: prime.
processes nextPut: sieve fork
].
sema initSignals
] repeat
] fork.

ans := (1 to: 10) collect: [:idx | primes next].
1 to: processes size do: [:idx | processes next terminate].
ans "=> #(2 3 5 7 11 13 17 19 23 29) "
404デフォルトの名無しさん
垢版 |
2019/02/26(火) 20:30:26.61ID:cNXsTeTJ
お題: (Aが真 または Bが真) ならば Cが真である。 であるをプログラムしなさい。
405デフォルトの名無しさん
垢版 |
2019/02/26(火) 23:29:53.47ID:Tg4W+a2u
お題: 円の最大重複数を求めよ

例題 以下画像の場合、最大重複数は4です。
https://imgur.com/pbh3VSE.png
円の重複数え方は、2つの円が重なっていたら、重なっている数は2とします。
また、円の重複判定の際、2つの円が円周上の1点のみで重なる場合、それらの円は重なっていないとします。
(理由は重複している面積は0だから。)


以下、本題。
画像のようなNo.0からNo.99までの100個の円があります。
これの円の最大重複数を整数で答えなさい。
https://imgur.com/WiRHA1F.png

入力データ:
https://drive.google.com/open?id=1kl8bS3GOr8Ot2OMMACdCG0SJMpEKxLO3

入力データはx座標 y座標 r(半径)の順で記述されたリストで、すべて実数です。
与えられる入力データは
-800.0 ≦ x ≦ 800.0
-800.0 ≦ y ≦ 800.0
100.0 ≦ r ≦ 400.0
の条件を満たします。


画像は自作、多分正しい。
2019/02/27(水) 11:44:25.97ID:wHsSBDML
お題: 自分自身のコードのコメントと非コメントを入れ替えたコードを出力するプログラムの
コードが自分自身のコメントの非コメントを入れ替えたプログラムのコードに
なっているプログラム
2019/02/27(水) 12:50:19.00ID:haTnnqie
S式かRPNで書いてくれややこしい
408デフォルトの名無しさん
垢版 |
2019/02/27(水) 16:44:46.91ID:1o6M4rID
>>406
サンプルプリーズ
2019/02/27(水) 19:23:18.85ID:1o0vhyUy
お題
整数N(N>=6)を相異なる3つの整数(0<a<b<c)の和で表すことを考える。
数列(a,b,c)として考えられるもののうち、辞書式順序で最小のものと最大のものを求めよ

N=6
=> (1,2,3)/(1,2,3)

N=100
=> (1,2,97)/(32,33,35)
410デフォルトの名無しさん
垢版 |
2019/02/27(水) 19:25:22.96ID:sZAuINQ9
お題
英今文字からなる文字列が与えられる。
各文字の大文字、小文字の組み合わせをすべて求める。
"ab"の場合
ab
aB
Ab
AB
2019/02/27(水) 19:42:57.27ID:haTnnqie
エーコン文字って何
2019/02/27(水) 19:49:50.41ID:fYEBa3GD
>>409
これって要するにcombinationのfirstとlastじゃねえの
next_combination()の一番最初と最後だよ
2019/02/27(水) 20:08:19.81ID:Tij8CMAh
>>409
こんな感じ?
https://paiza.io/projects/YfC3K-dnEC7TuEXJjDFMGw
2019/02/27(水) 21:30:26.97ID:WT+xSYik
>>410 JavaScript
const acorn = s => {
for (let i=0; i < 2**s.length; i++) {
console.log([...s]
.reduce((acc, c, j) => acc+String.fromCharCode(c.charCodeAt() - 32 * i.toString(2).padStart(s.length, 0)[j]), '')
);
}
}
acorn('ab'); // の実行結果:
ab
aB
Ab
AB
acorn('ufo'); // の実行結果:
ufo
ufO
uFo
uFO
Ufo
UfO
UFo
UFO
415デフォルトの名無しさん
垢版 |
2019/02/28(木) 04:32:37.78ID:oRFlldUh
>>410
Kotlin
https://paiza.io/projects/y4eoD5DUuLdHi6S6hcFvrw
2019/02/28(木) 06:17:40.15ID:9oEuhY5c
>>410 Ruby
s = "ufo"
a = []
s.each_char do |c| a.push([c, c.upcase]) end
b = a[0]
a[1..-1].each do |e| b = b.product(e) end
b.each do |e| puts(e.join) end
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況