1 名前:デフォルトの名無しさん mailto:sageteoff [2015/10/07(水) 20:19:06.64 ID:c4LYwtKo.net] プログラミングのお題スレです。 前スレ プログラミングのお題スレ Part7 peace.2ch.net/test/read.cgi/tech/1429195275/ 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 【ソースコードが長くなったら】 (オンラインでコードを実行できる) ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode runnable.com/ code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。
935 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/11/09(水) 22:31:53.26 ID:A1mSNctr.net] お題:テーブルの上にきれいにきちんと重なったトランプ1セットが置いてあり、全てのカードの表が上向きになっている。 プログラムはカードの並びを入れ換えたり、上からn番目のカードを読み込むことができる。 この仮想的なトランプを操作することによって円周率を求めるプログラムを書け。
936 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 22:43:42.78 ID:RQn7BeEP.net] まず>>918 のコードが見たいなー}
937 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 00:53:34.51 ID:7cWLs5su.net] >>906 https://ideone.com/i6ZnJc
938 名前:164 mailto:sage [2016/11/10(木) 01:07:34.71 ID:UjUlxJgT.net] >>908 あんさんは、 Programmingを 楽しんでますなー。 気に入ったぜ。
939 名前:164 mailto:sage [2016/11/10(木) 01:11:20.89 ID:UjUlxJgT.net] 以下、enterprise fizzbuzzみたいな hellow worldを書く椰子 ↓
940 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 01:21:32.89 ID:rkwF1pIg.net] brainfuckやwhitespeceで文字出力するだけってジェネレータで出来るじゃん
941 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 21:28:06.13 ID:drAYGWtl.net] >>906 @Mathematica ideone.com/1PtMdm
942 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 12:36:20.63 ID:OOJ7Wqnx.net] 大文字を出力してるので減点
943 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 14:05:38.79 ID:FKtxBunI.net] 真面目か
944 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 14:44:10.92 ID:5nMDDcWB.net] >>906 C ideone.com/Be4XYH
945 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 18:06:10.50 ID:pVnBGILb.net] お題 整数Aに整数Bを加算しなさい 但し3桁に区切って計算すること AとBは文字列で標準入力から2行に分けて与えられる 0≦A≦999999999999999999999999999999999 0≦B≦999999999999999999999999999999999 標準入力 1234 15 標準出力 1249 解説 A=1234 B=15 Aは3桁を超えてるので123と4に分割される 123*10+B+4=1249 もしくは 1*1000+234+B=1249
946 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 18:31:12.94 ID:kNoTIrA7.net] >>928 >3桁に区切って の意図がわからない 普通に多桁長加算の実装じゃないのか?
947 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 18:50:09.31 ID:8285RMD/.net] 多桁長の演算を実装するだけのようだし 3桁に区切るって限定しなくてもいいよな。
948 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 19:55:55.39 ID:Q4JxAaLZ.net] >>906 c ・数年前に同じお題をここか別のスレでやったような気が… #include <stdio.h> int main() { struct { struct {long _a, _b;} _a, _b, space, _d, _e, _f; char _,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z; } __; #define _(v) putchar((void *)&__.v - (void *)&__) _(h),_(e),_(l),_(l),_(o),_(space),_(w),_(o),_(r),_(l),_(d); return &__ - &__; }
949 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 20:04:46.68 ID:8285RMD/.net] >>931 こりゃすごい! 今まで最短の上に可読性が高い!
950 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 20:22:45.93 ID:X4UPo+EY.net] >>931 ideoneでもローカルでもダメだったゾ https://ideone.com/hhNgqg
951 名前:930 mailto:sage [2016/11/12(土) 21:03:19.70 ID:Li4gnKYC.net] >>932 ども! でも最短じゃあないよねw >>933 ごめん sizeof(long)が8の環境で確認してた struct {struct {char a,b,c,d;} a,b,c,d;} _a, _b, space, _d, _e, _f; これでどこでも動くはず
952 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 22:58:47.72 ID:VjO69xXO.net] >sizeof(long)が8の環境で確認してた あれま? paiza.IOではちゃんと動いたけど ideoneやCodeIQではダメだったか
953 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 00:35:59.69 ID:GDVX8Ikh.net] >>931 >数年前に同じお題を >>915 のCodeIQの問題とかじゃね?
954 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 08:49:46.08 ID:y8U2/o7H.net] >>906 https://ideone.com/ST1qS2
955 名前:デフォルトの名無しさん [2016/11/13(日) 09:05:29.71 ID:FuKHFetX.net] お題:nビットのグレイコ^ドを生成する。 例 n 3 000 001 011 010 110 111 101 100 S
956 名前:デフォルトの名無しさん [2016/11/13(日) 09:14:09.45 ID:FuKHFetX.net] お題:nビットのグレイコードを生成する。 例 n=3 000 001 011 010 110 111 101 100
957 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 11:09:32.80 ID:w9Y83CjX.net] >>939 @Mathematica ideone.com/WXOxKH
958 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 12:26:26.96 ID:ArrhAnA/.net] >>939 Java ideone.com/SOEHsd brainfuckでやろうかなと思ったが、少し考えてめんどくさくなってやめた
959 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 19:09:07.56 ID:EpE2S11k.net] >>939 C# ideone.com/Gbq0NT >>941 こんな短く書けるのかw ガックリ来たわ どういうロジックかさっぱり分からんw
960 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 20:45:37.87 ID:qMZbrJPH.net] >>942 ニコニコ百科からの転載でアレだけどこれ抑えてれば理解できるんじゃね >二進数を1ビット右にシフトし(先頭は0)、元の二進数と各桁で排他的論理和をとると得られる。また、1ずつ増やした場合、グレイコードで変化する桁は、二進数で0が1に変化する桁(繰り上がる先の桁)に等しい。 入力数値の分だけ1をシフトさせてやりゃ入力数値が桁数に変換できるから あとはその桁数に達するまでforループ回して元数値と右シフト数値の排他的論理和とって2進表示し続けてる感じだと思う 無駄がなくてスマートなプログラムな感じがするけどsubstring(1)だけよく分からない
961 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 20:53:45.16 ID:ArrhAnA/.net] >>943 指定桁数の2進数を作るのに最上位ビット捨ててる n=3だと1xxxの文字列作って一番左削ってる感じ printf等で指定桁数の2進数作れりゃそっち使うんだけどw
962 名前:デフォルトの名無しさん [2016/11/13(日) 21:00:49.81 ID:qMZbrJPH.net] >>244 桁数調整の為に一旦論理和とってから最初の1だけ捨ててるのか 勉強になりました
963 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 21:09:45.44 ID:EpE2S11k.net] >>943 なるほどそういう定式化された求め方があるのか グレイコードなんて大昔学校で習って以来まったく使ったことがないから知らなかったよ。 ありがとう
964 名前:デフォルトの名無しさん mailto:sage [2016/11/14(月) 04:33:29.92 ID:/TJLzgQW.net] >>939 Nim https://ideone.com/JsyrW3
965 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 07:10:12.87 ID:H9REv+Ri.net] >>906 J hello =: noun world =: noun ;:inv nl $~ noun
966 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 07:34:43.51 ID:HcDSv4MP.net] >>906 ここをクリック >>906
967 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 07:52:00.92 ID:k57TIQI7.net] 次スレあるの?
968 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 15:27:30.98 ID:Veyi95OJ.net] >>932 何が凄いのか分からん hello worldがコード中に埋め込まれて いるのが見えるんだが、だったら printfでhello world書いているのと同じじゃあないの?
969 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 16:32:08.46 ID:evn38iuN.net] >>951 printf("hello world");←これの""で囲まれてる部分が文字列リテラル 今回は文字列リテラルと数字を使わずにハロワを出力してみろってお題だからprintfでそのまま書いてたらアウト
970 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 18:08:30.22 ID:DO3IaX9S.net] >>906 のお題は文字列リテラル禁止じゃなく文字リテラル禁止だよ
971 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 18:30:01.74 ID:evn38iuN.net] そうかそいつはすまなかった読み違えたよ >>952 の2行目の「文字列リテラル」は「文字リテラル」に置き換えて読んでくれ
972 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 18:59:50.88 ID:DO3IaX9S.net] C言語なら "hello world"のダブルクオートで括るのは文字列リテラルだけど 文字リテラルはシングルクオートで括るから 文字列リテラル使うprintf("hello world")は合法だよ
973 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 19:02:18.94 ID:DO3IaX9S.net] brainfuckやwhitespaceは処理系によってはもしかすると文字リテラルや文字列リテラルあるのかもしれないけど C言語で>>906 の問題を解くなら>>931 と基本同じように文字コード計算して出力するだけだから大差ないよね
974 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 06:37:25.19 ID:NqgYpFgU.net] ?
975 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 20:12:56.69 ID:5Ihw572q.net] >>906 C# ideone.com/FHDr9j やっぱり面白くないな
976 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 21:43:19.98 ID:h+UNZgYe.net] " "や'_'を使ってるところがウケ狙いなのかもしれないけど 確かにそんなに面白くない
977 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 22:49:50.11 ID:opmi2l/i.net] 文字コードが絡む問題は悪名高いEBCDICを真っ先に思い浮かべてしまって その考慮がされてないとちょっと白ける部分がある
978 名前:デフォルトの名無しさん [2016/11/20(日) 01:25:08.34 ID:60DKtBPZ.net] >>906 ruby2 print :hello, [:s, :S].map(&:to_s).map(&:ord).inject(:-).chr, :world melpon.org/wandbox/permlink/i4MWT1u23HHuoe7P
979 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 13:28:08.49 ID:mWWihz9s.net] >>906 Haskell ideone.com/QN4BaU
980 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 08:38:02.28 ID:4Ckt/1Kw.net] >>906 F# type ``hello world`` = W printfn "%s" typeof<``hello world``>.Name
981 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 08:39:37.06 ID:4Ckt/1Kw.net] 訂正 >>906 F# type ``hello world`` = W stdout.WriteLine typeof<``hello world``>.Name
982 名前:デフォルトの名無しさん [2016/11/21(月) 18:47:44.72 ID:3NXFWxK7.net] >>939 ruby n = 3 (1 << n).times do |v| puts "%0#{n}b" % (v ^ (v >> 1)) end melpon.org/wandbox/permlink/BnpyEB9rsl73vBDI
983 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 19:50:16.01 ID:nCxXmPKB.net] >>935 (´・∀・`)ヘー 動く環境もあったのね >>936 CodeIQ見たことも聞いたこともない >>906 c ・数字つこうた ・四則演算ビット演算無し ・文字リテラル文字列リテラル無し ・移植性と他の環境で動く保障無し #include <stdio.h> int main() { int is[] = {1819043176, 1870078063, 6581362}; long long lls[] = {8031924123371070824, 6581362}; puts((char *)is); puts((char *)lls); return 0; } ↓ hello world hello world
984 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 20:56:30.60 ID:/F1fcl9l.net] 文字コードに依存するわエンディアンに依存するわ、後出しでどんだけ劣化するんだ
985 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 23:37:55.18 ID:7dMNwwBf.net] 数字もダメ というのがルール
986 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 02:14:49.59 ID:bN+iUVDf.net] 勝手に問題作り変えちゃダメだよね 国語できなさそう
987 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 04:14:16.14 ID:hJpZQ6a9.net] >>906 ideone.com/X7Wrl9 C++?? 既出の回答に感動してパクってみた。 数字自作してる時点であんまり問題の意味ないよね。 体をなしてないというか。
988 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 05:24:33.85 ID:7Ti0FWyJ.net] >>906 ideone.com/XH28rr Python3 HQ9+的アプローチで数値計算してない
989 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 08:07:22.61 ID:ofQaf/jO.net] リバースエンジニアリングしてもコード中にリテラルが無いので解読されにくいという事だよね
990 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 08:58:18.46 ID:hJpZQ6a9.net] 秘密主義は技術の向上を阻害するのであんまり興味ないな。
991 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 11:24:14.19 ID:O62ysXRT.net] でも「神秘的!ステキ!」とか言われてクラッカーやハッカーにモテるかもよ
992 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 20:14:09.73 ID:svcAyLEK.net] >>906 Common Lisp https://ideone.com/jcgKGl
993 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 21:11:42.55 ID:0aK0hXHG.net] >>906 c https://ideone.com/5oPjJu ・数字無し ・四則演算ビット演算無し ・文字リテラル文字列リテラル無し ・移植性と他の環境で動く保障無し >>906 ruby ・バッククォートつこうた puts `echo hello world`
994 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:00:15.16 ID:GG9ZZPlA.net] >>976 cの方面白い 細かいけどreturn 0;に数字使われて
995 名前:るのに笑ってしまった [] [ここ壊れてます]
996 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:12:48.53 ID:bzMDKvPC.net] bash $echo hello world
997 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:32:08.95 ID:GG9ZZPlA.net] それがありなら c++ https://ideone.com/5fVbir
998 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:33:06.33 ID:GG9ZZPlA.net] もう出てたか
999 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 03:02:34.05 ID:1DVlaY/L.net] >>976 その手があったか。思いつかなかった
1000 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 16:23:56.87 ID:zVQCWlzE.net] >>977 > return 0;に数字使われてる どわーっ!! >>906 c codepad.org/4F3U6t52 ・移植性と他の環境で動く保障無し (少なくともideoneじゃコンパイルエラー 変形して通しても次の問題が出てきて駄目)
1001 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 17:00:53.66 ID:v3lmFY9L.net] bash $cat message.txt
1002 名前:164 mailto:sage [2016/11/28(月) 21:11:05.16 ID:rbBqsttl.net] >>906 Perl sub AUTOLOAD {($AUTOLOAD =~ /::(.+)$/)[0]} print Hello()." ".World()."\n";
1003 名前:164 mailto:sage [2016/11/28(月) 21:24:43.26 ID:rbBqsttl.net] >>984 しまった、listのindexに0を使っちゃってる。 return 0;がダメ?かもしれないならば数字使っちゃダメ?? ならばこうか… >>906 Perl sub AUTOLOAD { $AUTOLOAD =~ s/^.*:://; $AUTOLOAD } print hello()." ".world()."\n";
1004 名前:164 mailto:sage [2016/11/28(月) 21:42:11.18 ID:rbBqsttl.net] >>906 Perl つか、これでイイジャン。 package hello_world; print join ' ', split '_', __PACKAGE__; 連投スマソ
1005 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 21:56:43.31 ID:dQXmDcQq.net] 文字リテラル知らんのか?
1006 名前:164 mailto:sage [2016/11/28(月) 22:24:35.04 ID:rbBqsttl.net] "hello world"の文字列リテラルだけじゃなく " "もダメてことか…orz ' 'は一応「文字」だけどまぁ歓迎されない感じだな もうひと工夫いるけどマンドくさくなってきた
1007 名前:デフォルトの名無しさん [2016/11/29(火) 19:26:40.96 ID:LsagP9/y.net] コードとコンパイラによっては最適化で文字が埋め込まれることに
1008 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:35:16.55 ID:1MA0K2jV.net] 先入れ中出しのアルゴリズムを実装せよ
1009 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:39:13.43 ID:+UdcctZr.net] やだ、できちゃう
1010 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:49:39.94 ID:PX7t+lnB.net] 先っちょだけだから
1011 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 01:45:20.18 ID:b7dyxQXg.net] >>990 C++にはSTLにQueueあるからねぇ。 今更、作る意義がわからない。
1012 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 04:13:31.77 ID:b7dyxQXg.net] って、ネタかよ。真面目に答えるんじゃなかった。
1013 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 12:22:48.19 ID:y2jQ/DIV.net] STLは知らないけど.NETのキューって要素1つずつしか出し入れできないんだよね これだとバッファーとしては使いづらいから自作したわ
1014 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 12:44:08.74 ID:UIwN06Hs.net] LINQ使えばいいんじゃね
1015 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 23:47:33.27 ID:8E5tVjA8.net] Queueって先入れ中出しなん?
1016 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 00:54:11.48 ID:NHXaAvDm.net] それもネタなんだろ
1017 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 06:10:42.69 ID:I/74Zq7s.net] 次スレありますでしょうか。
1018 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 15:05:04.44 ID:HhJrKDKy.net] t
1019 名前:小倉優子 ◆YUKOH0W58Q mailto:sage [2016/12/01(木) 15:05:24.69 ID:HhJrKDKy.net] ∧,,,∧ ( ・∀・) 1000ならジュースでも飲むか ( ) し─J
1020 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています