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/ 宿題は宿題スレがあるのでそちらへ。
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++。総当たりのはずだけど、あってるかな?
895 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 07:36:20.45 ID:JpuKs6gN.net] >>876 しゅごい。
896 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 08:01:48.28 ID:eq+4G+9Q.net] >>873 Java ideone.com/ACELnF
897 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 19:59:02.35 ID:giaAjwb2.net] >>873 Squeak/Pharo Smalltalk | ans | ans := OrderedCollection new. self assert: 987 * 8 < 123456. '123456789' permutationsDo: [:perm | | numer denom | numer := perm first: 4. denom := perm allButFirst: 4. numer asInteger * 8 = denom asInteger ifTrue: [ans add: numer, '/', denom] ]. ^ ans
898 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 20:10:30.03 ID:4QNuq7Ui.net] >>879 なるほど、どうせ数が知れてるから真面目に順列でやる必要ないのかw
899 名前:164 mailto:sage [2016/11/05(土) 22:55:55.41 ID:9FbiGoMz.net] >>873 Perl use feature qw{:5.16}; $b = 8888; do { $b += 8; $a = $b/8; my %h; $h{$_}++ for split '', $a . $b; say "$a/$b" unless (exists $h{0} or 9 > keys %h) } while ($a <= 9999); next_permutation がライブラリに無いし 872の問題用に9文字から4桁の順列を生成する 再帰関数を作ろうとしたけど めんどくさくなって、別解法にしました。
900 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 23:03:21.88 ID:Kvw69EBs.net] >>873 @Mathematica {"1","2","3","4","5","6","7","8","9","/"}// Permutations// Select[#,#[[1]]!="/"&]&// Select[#,#[[-1]]!="/"&]&// ParallelMap[StringJoin,#]&// Select[#,ToExpression[#]==1/8&]&
901 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 10:45:05.08 ID:Ls7dpV42.net] >>873 類題 お題:1から9までの数字を1回づつ使って引き算をつくる。 たとえば123-456789, 3962-17548など。 引き算すると44444になるものをすべてもとめる。
902 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 11:16:41.58 ID:BmMxYEOk.net] >>884 C ideone.com/H2wG0P
903 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 12:39:57.86 ID:1PuOCcw9.net] >>884 Java ideone.com/qRUcKG 書き換え2行
904 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 14:47:56.12 ID:UyE09MO8.net] >>884 Squeak Smalltalk | ans | ans := OrderedCollection new. self assert: 123456 - 987 > 44444. '123456789' permutationsDo: [:perm | | x y | x := perm first: 5. y := perm allButFirst: 5. x - y = '44444' ifTrue: [ans add: x, '-', y] ]. ^ ans
905 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 15:31:09.29 ID:+kwTAqkL.net] >>873 >>884 c https://ideone.com/OVUNzF ・全パターンをチェック ・肝心な部分(comb, permute)はぐぐったサイトから無断で拝借しました ・セパレータ要素も一緒に混ぜとく案は>>883 さんを参考にしました ・一部の関数名(permutations_do)について>>887 さんを参考にしました
906 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 16:07:27.17 ID:1MCBSGi9.net] >>884 Io Range 1234 to(9876)select(i, (i ..(i+44444))asMutable sort =="123456789 )map(j,(44444+j).."-".. j)
907 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 19:36:04.77 ID:jK1sWMF7.net] https://twitter.com/codera_iroha/status/795116603557879808 > せんぱいは、10億以下の整数の中で、最も約数の多い整数を求めるプログラムを書けますか?
908 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 20:36:12.30 ID:9KctHGA8.net] 直感的には重複しない素数の積だと思うけど証明はできんなw
909 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:07:17.87 ID:1PuOCcw9.net] >>890 Java https://ideone.com/lJ037U あまり考えずに
910 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:39:17.02 ID:jK1sWMF7.net] >>892 Good Job
911 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:40:47.89 ID:jK1sWMF7.net] >>892 Good Jobじゃなく正解というべきだったな
912 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 00:17:44.47 ID:+ilf/hxD.net] >>892 どういうロジックかさっぱりわかんないやw でも、 newYakusu += yakusu; これはちょっとおかしい気がするw
913 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 00:55:26.00 ID:MDpsc3Qw.net] newYakusu *= 2; が正解だろうな、たぶん
914 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 01:14:46.43 ID:t5QB3k9f.net] っていうか、2*3*5は2*3の2倍の約数があるのはわかるけど、 2*2*2は2*2より1つ多いだけだと思うんだけど... まあたぶん俺が何か勘違いしてるんだろうなw
915 名前:デフォルトの名無しさん [2016/11/07(月) 01:18:30.50 ID:N5kIq+jA.net] 重複ははずしてだろ。ふつうに。どうみても2べきが小さいから。
916 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 09:25:12.04 ID:VzgYAniQ.net] 素因数の指数+1をすべて掛け合わせれば約数の数になる
917 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 19:37:58.99 ID:ZbCfelvl.net] >>899 素因数分解がむずかしいね,テーブルで持っておくしかないか
918 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 21:09:59.66 ID:hgWS81A3.net] >>892 が計算量を減らすためにバッサリ切り捨ててるとこが良く分からないけど 出てる答え 735134400 = 2^6*3^3*5^2*7*11*13*17 の他にもう一つ約数の数 1344 があった 931170240 = 2^6*3^2*5*7*11*13*17*19 もっとあるかも、というか正解は別にあるかもという気がしなくもない
919 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 21:37:10.62 ID:VzgYAniQ.net] >>901 https://ideone.com/UJF04i >>892 の素数リスト、19が抜けてるやw リスト表示するようにしても931170240が出てこないからおかしいなと確認したら初歩的なミスw
920 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 02:53:20.88 ID:E77IrmWO.net] 10億以下で約数の数が1344の整数はたぶん4つ 735134400 = 2^6*3^3*5^2*7*11*13*17 821620800 = 2^6*3^3*5^2*7*11*13*19 931170240 = 2^6*3^2*5*7*11*13*17*19 994593600 = 2^6*3^3*5^2*7*11*13*23
921 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 05:42:59.95 ID:rWt9CCW+.net] >>890 @Mathematica ideone.com/3wqeR5
922 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 09:54:20.69 ID:bJUc+90s.net] >>890 >>902 を参考に C++ ideone.com/OeTnpx
923 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 12:57:49.64 ID:n6HvGTQo.net] hello worldを出力しなさい 但し文字リテラルと数字をコード中に書いてはいけません
924 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 13:07:00.37 ID:DsWyA9Yw.net] >>906 誰得。
925 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 13:39:36.94 ID:RQn7BeEP.net] >>906 https://ideone.com/StMgsy https://ideone.com/whA3mU
926 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 14:40:02.73 ID:yNpdMLCi.net] >>906 ruby -e 'class HelloWorld ;end; p HelloWorld'
927 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 15:20:35.35 ID:7Gidw00Y.net] >>906 https://ideone.com/xwzB8Z
928 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 15:22:04.34 ID:7Gidw00Y.net] 可読性の高いコードができたぜ
929 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 15:57:41.78 ID:R5k7JcnE.net] >>906 ideone.com/xt4UEz
930 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 16:09:57.80 ID:RQn7BeEP.net] >>906 https://ideone.com/4Z2U4N 標準入力はコードのうちに入りますか?
931 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 18:09:11.97 ID:w47niDgV.net] >>906 文字リテラルは禁止だけど文字列はOK?
932 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 18:11:01.84 ID:w47niDgV.net] >>906 これに似てるね 普通じゃないHello World問題「Restricted Words」の解説記事 #伝説 #しえる|CodeIQ MAGAZINE https://codeiq.jp/magazine/2013/09/120/
933 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 19:45:29.90 ID:B1AmaaJH.net] >>906 Squeak Smalltalk | hello world | thisContext method tempNamesString "=> 'hello world' "
934 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 21:56:55.91 ID:3MgWSwni.net] >>906 https://ideone.com/o8SEV1 https://ideone.com/0PwVHQ
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 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています