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/ 宿題は宿題スレがあるのでそちらへ。
794 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 19:16:59.63 ID:GrCnAQwz.net] おーくせんまんおーくせんまん
795 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 15:45:59.82 ID:g8fgU4gY.net] お題と見せかけてプログラム作成依頼する奴って性格悪そう
796 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 17:22:57.31 ID:Hi+y6PXx.net] じゃぱぁーん!
797 名前:デフォルトの名無しさん [2016/10/01(土) 23:29:57.15 ID:sU5CeuPC.net] >>777 Ruby ideone.com/fKqGcR
798 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 10:09:53.98 ID:tpSAAMa5.net] 逆方向が難しいな
799 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 10:28:30.05 ID:9tnsJKRL.net] そうなの? いまから取り組む予定だったけど そんなに難しいんなら止めよっと
800 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 11:51:51.24 ID:QvMQ+uX0.net] 難しくはない 面倒くさいだけで
801 名前:デフォルトの名無しさん [2016/10/02(日) 17:21:53.04 ID:k1HK9CGy.net] >>777 Rubyで両方向。 ideone.com/vTwBZc
802 名前:デフォルトの名無しさん [2016/10/02(日) 21:03:52.42 ID:YNMJXJ08.net] お題:3×3×3のルービックキューブを最小手数で6面揃えるプログラム
803 名前:デフォルトの名無しさん [2016/10/02(日) 21:10:43.76 ID:w8w2bVqI.net] すいません>>787 は自己解決しました
804 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 21:17:54.22 ID:YgSevYt1.net] 自己解決ってなんだ
805 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 02:19:06.57 ID:afA6oe1A.net] >>777 ruby 2.0.0 ideone.com/uwKDDc ・マイナスを▲で表現するアイデアは>>786 さんから無断で拝借しました ・テスト部分のコードも>>786 さんから無断で拝借しました
806 名前:デフォルトの名無しさん [2016/10/03(月) 07:04:42.97 ID:g0wnVkPc.net] >>790 サンクス
807 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 15:18:20.56 ID:wy4v0QcT.net] >>787-789 ワラタw
808 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:25:42.73 ID:lIBXU/7G.net] 数独ソルバーで任天堂問題解こうと思ったら、2000万年かかるようになった。Orz 総当たりだとキツイなぁ。数独は。平均サジェスト数が2個の81乗。死ぬわ。
809 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:29:48.53 ID:lIBXU/7G.net] cp1.nintendo.co.jp/ruby.html ここから入門。
810 名前:デフォルトの名無しさん [2016/10/03(月) 21:33:29.69 ID:RKI08UEe.net] 任天堂問題とは?
811 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:40:47.39 ID:lIBXU/7G.net] >>795 俺が作った造語。すまんな。 >>794 のページから問題解いてくとアルヨ。
812 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:59:25.51 ID:hxqof8pD.net] Rubyの自作ヘボ数独ソルバーですらコンマ以下で解けたぞ
813 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:19:26.57 ID:lIBXU/7G.net] >>797 俺あんまりロジック解くの得意じゃないからねぇ。 C++でかいたけど、総当たりは筋が悪いことはわかったよ。
814 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:24:43.42 ID:aKvG7AoT.net] 総当たりから不要なパターンを省いていくのも一つの手だと思う
815 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:25:59.85 ID:hxqof8pD.net] >>797 基本ルール:ある数字と同じ列(or行or3*3の正方形)にはその数字が入らない これだけでも実装して後は背理法でやればすぐ解けると思うぞ 解の一意性がどうかとか細かいこともあるけどこの問題は一意的に求まるから関係ないし
816 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:27:06.95 ID:lIBXU/7G.net] ideone.com/afSrEW ここからどうしたらいいと思う? i7-6700でも2000万年かかる。
817 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 01:44:53.95 ID:a8C2punc.net] >>793-794 昔書いたソースコードを流用した ideone.com/ibTP88
818 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 01:58:03.23 ID:FAQ7jfY8.net] >>802 グレート! すごいな、イデオン時間で解けるもんなんだなぁ。うーん。俺は修業が足りんな。 俺も結構書いたかと思ったけど全然うわてだ。 ロジック解くときはやっぱこれくらい書かないとダメかー。 ひぎぃ、頭がフットーしちゃうよぉ〜。
819 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 02:23:25.94 ID:a8C2punc.net] >>803 数独は有名な解き方がいくつかあるので、それを知らないと難しいかも いくつもある解き方を実装するのは面倒なのでバックトラック法でやるのがいいと思う
820 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 02:52:38.24 ID:FAQ7jfY8.net] >>804 情報ありがとう。いいものが見れた。
821 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 19:40:37.29 ID:wFGKqamD.net] お題:任天堂の倒し方をプログラムせよ。
822 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 21:58:16.07 ID:ZRyYrZJK.net] 大作だなあ…
823 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 23:47:40.64 ID:YN9fMNzy.net] 「方法をブログラムせよ」ってのが謎なんですが
824 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 23:50:15.04 ID:FAQ7jfY8.net] 日本語で。 株を買います。株主総会でゴネマス。倒せます。
825 名前:デフォルトの名無しさん [2016/10/05(水) 00:49:13.06 ID:JfbCSBrf.net] >>806 プログラムしたよ。
826 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 19:29:14.00 ID:Bgv24eMU.net] 任天堂の倒し方を知っていると 言っていた面接官は
827 名前:デフォルトの名無しさん [2016/10/05(水) 19:35:13.81 ID:ljdAnrxD.net] お題:激問
828 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 21:44:58.11 ID:d6ezgCbb.net] >>793 ideone.com/cILqPg C++。 やっと解けたよー。ほとんどデバッグも整形もしてないけど、答えはあってるかも。 2000万年が0秒になった。頭タコすぎて泣けるわ。 頭がフットーする。 >>802 に感謝。
829 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 21:45:50.48 ID:iBWfgtGO.net] print "任天堂の倒し方"
830 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 21:56:56.37 ID:NHEuemUY.net] ヒントページ見れば苦労せずに誰でも書けそうなもんだが
831 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 22:05:52.60 ID:d6ezgCbb.net] >>815 ルビー読めません。Orz
832 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 17:02:16.03 ID:VkVdfdR0.net] スタックを操作するプログラムまたそれを表示するプログラムをお願いします
833 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 17:48:54.19 ID:Gk0vxqlO.net] 狩野英孝のものまねで「スタックー」って叫べばOK
834 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/10/06(木) 18:13:10.02 ID:KbZqo+3y.net] >>817 自動変数のアドレスはスタックへのポインターになる
835 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 19:29:47.14 ID:LwTuJfQY.net] スタックを操作するプログラムってこんなんでいいのかな? #include <malloc.h> #include <stdio.h> #include <string.h> unsigned char data[6] = {0x68,0,0,0,0,0xc3}; unsigned int func() { unsigned int *p; p = malloc(1024); memcpy(p,data,6); *((unsigned int*)&data[1]) = *((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*))); *((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*))) = (unsigned int)p; printf("0x%X\n",*((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*)))); return *((unsigned int*)&data[1]); } int main(void) { printf("0x%X\n",func()); return 0; }
836 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 19:48:03.50 ID:LwTuJfQY.net] >>820 すまん、これ間違ってますねぇ・・・ スタックの操作って環境依存な気がするけどどうなんでしょう
837 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 20:04:22.70 ID:SdPd3klr.net] え?データ構造の練習の話じゃなくてプログラムの一時領域の話? ちなみにここは宿題スレじゃない。
838 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:15:35.91 ID:dAHZcQmf.net] スマホで入力した数字を出力しなさい Sは0から9までの数字とcと+と-からなる文字列 0<S<1001 Sの先頭は数字から始まる Sの最後に+と-がこない cは入力済みの数字をクリアする +は左辺に1を足し、-は右辺に1を引く Sに数字が含まれていなかったり、cと+と-が先頭や最後に出てきたり2文字以上続いたらERRORと出力すること ■stdin 5+1-32c8 ■stdout 8 ■stdin 32+8 ■stdout 338 ■stdin +24c25 ■stdout ERROR
839 名前:修正 mailto:sage [2016/10/06(木) 21:16:30.92 ID:dAHZcQmf.net] スマホで入力した数字を出力しなさい Sは0から9までの数字とcと+と-からなる文字列 0<S<1001 Sの最後に+と-がこない cは入力済みの数字をクリアする +は左辺に1を足し、-は右辺に1を引く Sに数字が含まれていなかったり、cと+と-が先頭や最後に出てきたり2文字以上続いたらERRORと出力すること ■stdin 5+1-32c8 ■stdout 8 ■stdin 32+8 ■stdout 338 ■stdin +24c25 ■stdout ERROR
840 名前:修正 mailto:sage [2016/10/06(木) 21:17:13.95 ID:dAHZcQmf.net] Sの最後に+と-がこない ↑この1文も削除
841 名前:修正 mailto:sage [2016/10/06(木) 21:18:37.24 ID:dAHZcQmf.net] 119+5 なら1205
842 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:55:36.99 ID:hrJ3iBy7.net] この+,-ってスマホの入力とどういう関係があるの?
843 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:59:09.52 ID:HEfd0Rj6.net] また山下雄介か
844 名前:デフォルトの名無しさん mailto:sage [2016/10/07(金) 10:59:44.51 ID:1a/aMfXp.net] >>824 ruby if gets.chomp!.split(/[c+-]/, -1).include?('') puts:ERROR else str = $_.include?(?c)? $_[/c\K[^c]*$/] : $_ ary = str.split(/\b/) ary.each_with_index{|s, i| case s when /^\d+$/ then next when ?+ then ary[i - 1].succ! when ?- then ary[i + 1] = (ary[i + 1].to_i - 1).to_s end ary.delete_at(i) } puts ary*'' end
845 名前:828 mailto:sage [2016/10/07(金) 11:10:04.11 ID:1a/aMfXp.net] ミス if gets.chomp!.split(/[c+-]/, -1).include?('') puts:ERROR else str = $_.include?(?c)? $_[/c\K[^c]*$/] : $_ ary = str.split(/\b/) ary.each_with_index{|s, i| case s when /^\d+$/ then next when ?+ then ary[i - 1].succ! when ?- then ary[i + 1] = (ary[i + 1].to_i - 1).to_s end ary[i] = nil } puts ary.compact*'' end
846 名前:828 mailto:sage [2016/10/07(金) 11:21:01.09 ID:1a/aMfXp.net] ミス 連投すまんこれで最後にするわ if gets.chomp!.split(/[c+-]/, -1).include?('') puts:ERROR else str = $_.include?(?c)? $_[/c\K[^c]*$/] : $_ ary = str.split(/\b/) ary.each_with_index{|s, i| case s when /^-?\d+$/ then next when ?+ then ary[i - 1] = (ary[i - 1].to_i + 1).to_s when ?- then ary[i + 1] = (ary[i + 1].to_i - 1).to_s end ary[i] = nil } puts ary*'' end
847 名前:デフォルトの名無しさん [2016/10/08(土) 08:08:57.97 ID:vxldEz4C.net] >>824 830を参考にしました。 Ruby ideone.com/AizppP
848 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 01:39:18.78 ID:okPyT/Vt.net] 1行で gets.chomp!.split(/[c+-]/,-1)&['']!=[]?$><<:ERROR:(~/c/?$_[/c\K[^c]*$/]:$_).split(/\b/).tap{|a|$><<a.each_with_index{|s,i|s.to_s[/\d/]?next: a[i-e=44-s.ord]=a[i-e].to_i+e;a[i]=p}*''}
849 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 03:00:29.48 ID:BybICDK4.net] やっぱRubyって・・・いや、なんでもない
850 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 21:58:35.59 ID:2oHV2A6O.net] >>823-826 ・「右辺に1を引く」の右辺をマイナスのすぐ右側の数と解釈 def f8823(s) # Sに数字が含まれていなかったり、 # cと+と-が先頭や最後に出てきたり2文字以上続いたらERRORと出力すること return 'ERROR' if /\d+/ !~ s || /(^[c+-]|[c+-]$|[c+-]{2,})/ =~ s # cは入力済みの数字をクリアする # +は左辺に1を足し、-は右辺に1を引く s.gsub(/.+c/, '').gsub(/(\d+)\+/) {$1.next}.gsub(/-(\d+)/) {($1.to_i - 1).to_s} end p %W(#{} c + - 1c 1+ 1- c1 c+ c- 1cc1 1++1 1--1 1c+-1 119+5 119-5 119c5 1+1-1 1+1+1 1-1-1).map {|s| [s, f8823(s)]} ↓ $ ruby 8823.rb [["", "ERROR"], ["c", "ERROR"], ["+", "ERROR"], ["-", "ERROR"], ["1c", "ERROR"], ["1+", "ERROR"], ["1-", "ERROR"], ["c1", "ERROR"], ["c+", "ERROR"], ["c-", "ERR OR"], ["1cc1", "ERROR"], ["1++1", "ERROR"], ["1--1", "ERROR"], ["1c+-1", "ERROR" ], ["119+5", "1205"], ["119-5", "1194"], ["119c5", "5"], ["1+1-1", "210"], ["1+1 +1", "221"], ["1-1-1", "100"]]
851 名前:834 mailto:sage [2016/10/09(日) 22:19:57.08 ID:k3CHV3QP.net] >>835 は完全に間違っているので取り下げます 1-1+1 が 120 になっちゃうねこれじゃあ
852 名前:デフォルトの名無しさん [2016/10/09(日) 23:19:57.10 ID:0NJ6apgZ.net] >>836 ideone.com/Qb37qE で実行してみたが、 1-1+1 は、ERRORじゃね?
853 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 08:00:29.16 ID:HHuVI6c/.net] お題: A B C … Z 1 2 3 26 とするとき、 KNOWLEDGE -> 11 + 14 + 15 + 23 + 12 + 5 + 4 + 7 + 5 = 96 HARDWORK -> 8 + 1 + 18 + 4 + 23 + 15 + 18 + 11 = 98 ATTITUDE -> 1 + 20 + 20 + 9 + 20 + 21 + 4 + 5 = 100 となる。 総和が100となる他の単語を3つ見つけよ。
854 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 08:20:11.21 ID:jxPg9rAk.net] 辞書ファイルくださいw
855 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 08:52:21.18 ID:HHuVI6c/.net] >>839 っdetail.chiebukuro.yahoo.co.jp/qa/question_detail/q1412673334
856 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 09:34:42.77 ID:jxPg9rAk.net] >>838 Java https://paiza.io/projects/vpDhY14oTq6f2YXv4a5wIA
857 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 11:41:38.97 ID:PJGQtdQ9.net] >>838 ruby wordlist.txtは改行\n区切りとする $><<open('wordlist.txt').readlines.select{|s|s=s.chomp.upcase.delete('^A-Z');s.codepoints.reduce(&:+)-s.size*64==100}[0,3]*''
858 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 15:20:38.52 ID:vALgwmuK.net] >>838 Emacs Lisp (require 'cl-lib) (cl-mapcan (lambda (s) (and (not (string-match
859 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 15:47:08.07 ID:vALgwmuK.net] >>838 Emacs Lisp (require 'cl-lib) (setq result (cl-mapcan (lambda (s) (and (not (string-match "\x5b^A-Z]" s)) (= (apply #'+ (mapcar (lambda (x) (- x ?@)) (upcase s))) 100) (list s))) (split-string (with-temp-buffer (insert-file-contents "/usr/dict/words") (buffer-string))))) (cl-loop for i from 0 below 3 do (print (nth i result))) "accumulate" "acknowledge" "adulthood" (cl-loop for i from 0 below 3 do (print (nth i (reverse result)))) "yarrow" "Yankton" "wholesale"
860 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 17:24:16.08 ID:Tl2g/5GS.net] 左下から右上に登る階段を作りなさい 標準入力よりA Bが与えられる Aは段数 Bは平らな部分の長さ 0 ≦ (A,B) 何も出力されるものがなければNONEと出力すること [stdin] 3 2 [stdout] ******__ ****__| **__| __| [stdin] 0 1 [stdout] _ [stdin] 0 0 [stdout] NONE
861 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:14:49.37 ID:jxPg9rAk.net] >>845 段数1以上で平らの部分の長さが0の場合はNONEと|が縦に並ぶのとどっち?
862 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:21:18.09 ID:PJGQtdQ9.net] >>845 Ruby 1行で eval"a,b=%s+1,%s;b<1?$><<:NONE:a.times{|i|puts ?**(a+~i)*b+?_*b+?|*i[0]}"%gets.split
863 名前:164 mailto:sage [2016/10/10(月) 18:30:33.51 ID:WihadwZK.net] >>845 Perl use f
864 名前:eature qw{:5.16}; $_ = <>; ($n, $l) = split; $s = sub { my $i = $_[0]; ($n or $l) and $i <= $n ? __SUB__->($i + 1) . '*' x $l x $i . '_' x $l . ($i < $n ? '|' : '') . "\n" : '' }->(0); print $s ? $s : "NONE\n"; d:\Home>perl 8_844_step.pl 3 2 ******__ ****__| **__| __| d:\Home>perl 8_844_step.pl 0 1 _ d:\Home>perl 8_844_step.pl 1 0 | d:\Home>perl 8_844_step.pl 0 0 NONE [] [ここ壊れてます]
865 名前:164 mailto:sage [2016/10/10(月) 18:33:10.57 ID:WihadwZK.net] >>848 の d:\Home>perl 8_844_step.pl から下の行はコマンドプロンプトから実行した結果の画面のコピペで、 プログラムソースは use feature qw{:5.16}; … print $s ? $s : "NONE\n"; の範囲です
866 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:40:27.87 ID:PJGQtdQ9.net] Ruby 出力がNONE ⇔ a=0かつb=0 だとすれば eval"a,b=%s+1,%s;a+b<2?$><<:NONE:a.times{|i|puts ?**(a+~i)*b+?_*b+?|*-2[i]}"%gets.split
867 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:41:34.94 ID:XcJmDjCA.net] >>845 C# なんか宿題っぽいし(悪いけど)いまいちなお題に思えたけど暇だからやってみた https://ideone.com/sAWIyp やっぱりかなり退屈だなw
868 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:10:20.45 ID:GJ6N0Utq.net] >>838 rustc 1.8.0 use std::io; use std::io::prelude::*; fn main() { let stdin = io::stdin(); for line in stdin.lock().lines().map(|x| x.unwrap()).filter(|s| s.chars().fold(0, |acc, c| acc + 1 + c as i32 - 'A' as i32) == 100).take(3) { println!("{}", line); } } >>845 ruby 2.0.0 a, b = $stdin.gets.scan(/\d+/).map {|s| s.to_i} stairs = (0..a).inject([]) {|acc, i| acc << '*' * b * (a - i) + '_' * b + (0 < i ? '|' : '')} puts b == 0 ? 'NONE' : stairs.join("\n")
869 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:29:46.85 ID:GJ6N0Utq.net] >>845 ruby 2.0.0 ちょい整理 a, b = $stdin.gets.scan(/\d+/).map {|s| s.to_i} stairs = (0..a).map {|i| '*' * b * (a - i) + '_' * b + (0 < i ? '|' : '')} puts b == 0 ? 'NONE' : stairs.join("\n")
870 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:35:05.59 ID:XcJmDjCA.net] ケチつけるつもりは全然なくて純粋な疑問なんだけど、 Rubyってとにかく短く書くのが命で可読性はどうでもいいっていう文化なの?
871 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:39:05.26 ID:QHxKPE5l.net] >>854 せやで
872 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:40:37.95 ID:PJGQtdQ9.net] >>854 >>847 とか>>850 は勝手にゴルフっぽいことしてるだけで Rubyではコードが短いほど良いという共通の価値観はないよ
873 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:45:28.26 ID:GJ6N0Utq.net] >>854 個人的にはそれはむしろPerlだと思うけどw (過去の個人的な体験に基づく偏見です)
874 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:45:57.40 ID:XcJmDjCA.net] >>856 やっぱりそうだよねw ありがとう
875 名前:デフォルトの名無しさん [2016/10/10(月) 20:51:52.34 ID:xXMHDLa+.net] rubyは作者がそもそもコードの表記法にこだわっているからruby文化全体に表記にこだわりを持つ部分があるのは事実
876 名前:164 mailto:sage [2016/10/10(月) 21:02:10.31 ID:WihadwZK.net] >>857 Perlは短くするために難読性が高くなるような 書き方もできる自由度があるけど >>848 はなるべく難読にならないように俺としては配慮して書いたつもりだよ。 ただ、ここに貼るとインデントがなくなっちゃうので見やすさは損なわれているけれど… >>848 にポイントするとインデントが付くのでよかっらたポイントしてみてね。 >>848 であえて意識したのは無名関数の自己再帰を使ったこと
877 名前:ュらいかな。 [] [ここ壊れてます]
878 名前:164 mailto:sage [2016/10/10(月) 21:56:18.64 ID:WihadwZK.net] >>838 Perl use feature say; use List::Util 'sum'; for (1..3) { local $_ = <>; chomp; redo if sum(map {ord($_) - ord('A') + 1} split '') != 100; say; }
879 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 22:06:38.74 ID:GJ6N0Utq.net] >>860 実は俺はPerlの可読性なんかを1ミリも語れる状況に無くて 20年前に赤いラクダ本を先輩に貰ったまま本棚で腐らせてるような体たらく 読み書きままならないってだけなんで、どうかお気になさらないでください
880 名前:デフォルトの名無しさん mailto:sage [2016/10/11(火) 20:20:36.62 ID:4j+X4FeX.net] そうね、誕生石なら
881 名前:デフォルトの名無しさん mailto:sage [2016/10/11(火) 20:49:10.20 ID:5wY1VI8m.net] >>838 @Mathematica ideone.com/kMqMeG
882 名前:164 mailto:sage [2016/10/12(水) 00:29:27.25 ID:RXlYYM2a.net] >>823 >>824 Perl use feature 'say'; while (<>) { chomp; print "$_ => "; while (($a,$o,$b,$r) = /^(\d+)([c+-])(\d+)(.*)$/) { $a++ if $o eq '+'; $b-- if $o eq '-'; $a = '' if $o eq 'c'; $_ = "$a$b$r"; } say /^\d+$/ ? $_ : 'ERROR'; }
883 名前:164 mailto:sage [2016/10/12(水) 00:30:18.77 ID:RXlYYM2a.net] >>865 の実行結果の例 5+1-32c8 => 8 32+8 => 338 +24c25 => ERROR 119+5 => 1205 1-1+1 => 111
884 名前:デフォルトの名無しさん mailto:sage [2016/10/13(木) 20:27:03.99 ID:PLGkmVG9.net] >>823-826 rust 1.8.0 https://ideone.com/OGRf5X ・正規表現不使用 ・最後のjoin処理はideoneのrust 1.0.0に合わせて修正
885 名前:デフォルトの名無しさん mailto:sage [2016/10/14(金) 05:03:01.25 ID:ayBWV1jp.net] >>824 ideone.com/wEetSD C++。テストは>>835 を一部拝借。失礼。 本分書き始める前に色々使いそうな関数書いたものの結局使わず。無駄だった。 あってるかなぁ。
886 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/10/24(月) 18:40:09.78 ID:Ea5AKtst.net] お題:隣接行列で与えられたネットワークを可能ならば一筆書きする。 不可能なら「No solution.」と表示する。
887 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/10/24(月) 18:56:42.71 ID:Ea5AKtst.net] お題:架空の4ビットCPUの機械語を設計し、その論理式と回路図を出力するプログラムを作れ。
888 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 23:05:36.84 ID:iFtzBvZM.net] >回路図を出力 図の形式は出題者が指定しなくちゃ。
889 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 23:33:47.03 ID:Ea5AKtst.net] >>871 .svgか.pdf
890 名前:デフォルトの名無しさん [2016/11/04(金) 18:56:54.02 ID:8tGR/IuU.net] お題:1から9までの数字を1回づつ使って分数をつくる。 たとえば123/456789, 3962/17548など。 約分すると1/8になるものをすべてもとめる。
891 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 19:08:46.32 ID:XfxE6vHI.net] 4ケタの順列を総なめしながら8倍してチェックするのかな 3024個みたいだからたいしたことなさそう
892 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 22:07:13.71 ID:UQXTh2xL.net] >>873 https://ideone.com/oxmJ61
893 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 22:20:51.84 ID:K4HA426Y.net] >>873 ideone.com/kfs5ma
894 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 07:20:45.14 ID:JpuKs6gN.net] >>873 ideone.com/iDj8rX C++。総当たりのはずだけど、あってるかな?