[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/23 04:50 / Filesize : 284 KB / Number-of Response : 1021
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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++。総当たりのはずだけど、あってるかな?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<284KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef