[表示 : 全て 最新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/

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

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]


1019 名前:小倉優子 ◆YUKOH0W58Q mailto:sage [2016/12/01(木) 15:05:24.69 ID:HhJrKDKy.net]
  ∧,,,∧ 
 (  ・∀・) 1000ならジュースでも飲むか
  (    ) 
  し─J 

1020 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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