16/10/04 23:50:15.04 FAQ7jfY8.net
日本語で。
株を買います。株主総会でゴネマス。倒せます。
825:デフォルトの名無しさん
16/10/05 00:49:13.06 JfbCSBrf.net
>>806
プログラムしたよ。
826:デフォルトの名無しさん
16/10/05 19:29:14.00 Bgv24eMU.net
任天堂の倒し方を知っていると
言っていた面接官は
827:デフォルトの名無しさん
16/10/05 19:35:13.81 ljdAnrxD.net
お題:激問
828:デフォルトの名無しさん
16/10/05 21:44:58.11 d6ezgCbb.net
>>793
URLリンク(ideone.com)
C++。
やっと解けたよー。ほとんどデバッグも整形もしてないけど、答えはあってるかも。
2000万年が0秒になった。頭タコすぎて泣けるわ。
頭がフットーする。
>>802に感謝。
829:デフォルトの名無しさん
16/10/05 21:45:50.48 iBWfgtGO.net
print "任天堂の倒し方"
830:デフォルトの名無しさん
16/10/05 21:56:56.37 NHEuemUY.net
ヒントページ見れば苦労せずに誰でも書けそうなもんだが
831:デフォルトの名無しさん
16/10/05 22:05:52.60 d6ezgCbb.net
>>815
ルビー読めません。Orz
832:デフォルトの名無しさん
16/10/06 17:02:16.03 VkVdfdR0.net
スタックを操作するプログラムまたそれを表示するプログラムをお願いします
833:デフォルトの名無しさん
16/10/06 17:48:54.19 Gk0vxqlO.net
狩野英孝のものまねで「スタックー」って叫べばOK
834:片山博文MZ ◆T6xkBnTXz7B0
16/10/06 18:13:10.02 KbZqo+3y.net
>>817
自動変数のアドレスはスタックへのポインターになる
835:デフォルトの名無しさん
16/10/06 19:29:47.14 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:デフォルトの名無しさん
16/10/06 19:48:03.50 LwTuJfQY.net
>>820
すまん、これ間違ってますねぇ・・・
スタックの操作って環境依存な気がするけどどうなんでしょう
837:デフォルトの名無しさん
16/10/06 20:04:22.70 SdPd3klr.net
え?データ構造の練習の話じゃなくてプログラムの一時領域の話?
ちなみにここは宿題スレじゃない。
838:デフォルトの名無しさん
16/10/06 21:15:35.91 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:修正
16/10/06 21:16:30.92 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:修正
16/10/06 21:17:13.95 dAHZcQmf.net
Sの最後に+と-がこない
↑この1文も削除
841:修正
16/10/06 21:18:37.24 dAHZcQmf.net
119+5
なら1205
842:デフォルトの名無しさん
16/10/06 21:55:36.99 hrJ3iBy7.net
この+,-ってスマホの入力とどういう関係があるの?
843:デフォルトの名無しさん
16/10/06 21:59:09.52 HEfd0Rj6.net
また山下雄介か
844:デフォルトの名無しさん
16/10/07 10:59:44.51 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
16/10/07 11:10:04.11 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
16/10/07 11:21:01.09 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:デフォルトの名無しさん
16/10/08 08:08:57.97 vxldEz4C.net
>>824
830を参考にしました。
Ruby
URLリンク(ideone.com)
848:デフォルトの名無しさん
16/10/09 01:39:18.78 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:デフォルトの名無しさん
16/10/09 03:00:29.48 BybICDK4.net
やっぱRubyって・・・いや、なんでもない
850:デフォルトの名無しさん
16/10/09 21:58:35.59 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
16/10/09 22:19:57.08 k3CHV3QP.net
>>835は完全に間違っているので取り下げます
1-1+1 が 120 になっちゃうねこれじゃあ
852:デフォルトの名無しさん
16/10/09 23:19:57.10 0NJ6apgZ.net
>>836
URLリンク(ideone.com) で実行してみたが、
1-1+1 は、ERRORじゃね?
853:デフォルトの名無しさん
16/10/10 08:00:29.16 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:デフォルトの名無しさん
16/10/10 08:20:11.21 jxPg9rAk.net
辞書ファイルくださいw
855:デフォルトの名無しさん
16/10/10 08:52:21.18 HHuVI6c/.net
>>839
っURLリンク(detail.chiebukuro.yahoo.co.jp)
856:デフォルトの名無しさん
16/10/10 09:34:42.77 jxPg9rAk.net
>>838 Java
URLリンク(paiza.io)
857:デフォルトの名無しさん
16/10/10 11:41:38.97 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:デフォルトの名無しさん
16/10/10 15:20:38.52 vALgwmuK.net
>>838 Emacs Lisp
(require 'cl-lib)
(cl-mapcan (lambda (s) (and (not (string-match
859:デフォルトの名無しさん
16/10/10 15:47:08.07 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:デフォルトの名無しさん
16/10/10 17:24:16.08 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:デフォルトの名無しさん
16/10/10 18:14:49.37 jxPg9rAk.net
>>845
段数1以上で平らの部分の長さが0の場合はNONEと|が縦に並ぶのとどっち?
862:デフォルトの名無しさん
16/10/10 18:21:18.09 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
16/10/10 18:30:33.51 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
16/10/10 18:33:10.57 WihadwZK.net
>>848 の
d:\Home>perl 8_844_step.pl
から下の行はコマンドプロンプトから実行した結果の画面のコピペで、
プログラムソースは
use feature qw{:5.16};
…
print $s ? $s : "NONE\n";
の範囲です
866:デフォルトの名無しさん
16/10/10 18:40:27.87 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:デフォルトの名無しさん
16/10/10 18:41:34.94 XcJmDjCA.net
>>845
C#
なんか宿題っぽいし(悪いけど)いまいちなお題に思えたけど暇だからやってみた
URLリンク(ideone.com)
やっぱりかなり退屈だなw
868:デフォルトの名無しさん
16/10/10 20:10:20.45 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:デフォルトの名無しさん
16/10/10 20:29:46.85 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:デフォルトの名無しさん
16/10/10 20:35:05.59 XcJmDjCA.net
ケチつけるつもりは全然なくて純粋な疑問なんだけど、
Rubyってとにかく短く書くのが命で可読性はどうでもいいっていう文化なの?
871:デフォルトの名無しさん
16/10/10 20:39:05.26 QHxKPE5l.net
>>854
せやで
872:デフォルトの名無しさん
16/10/10 20:40:37.95 PJGQtdQ9.net
>>854
>>847とか>>850は勝手にゴルフっぽいことしてるだけで
Rubyではコードが短いほど良いという共通の価値観はないよ
873:デフォルトの名無しさん
16/10/10 20:45:28.26 GJ6N0Utq.net
>>854
個人的にはそれはむしろPerlだと思うけどw
(過去の個人的な体験に基づく偏見です)
874:デフォルトの名無しさん
16/10/10 20:45:57.40 XcJmDjCA.net
>>856
やっぱりそうだよねw
ありがとう
875:デフォルトの名無しさん
16/10/10 20:51:52.34 xXMHDLa+.net
rubyは作者がそもそもコードの表記法にこだわっているからruby文化全体に表記にこだわりを持つ部分があるのは事実
876:164
16/10/10 21:02:10.31 WihadwZK.net
>>857
Perlは短くするために難読性が高くなるような
書き方もできる自由度があるけど
>>848はなるべく難読にならないように俺としては配慮して書いたつもりだよ。
ただ、ここに貼るとインデントがなくなっちゃうので見やすさは損なわれているけれど…
>>848にポイントするとインデントが付くのでよかっらたポイントしてみてね。
>>848であえて意識したのは無名関数の自己再帰を使ったこと�
877:ュらいかな。
878:164
16/10/10 21:56:18.64 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:デフォルトの名無しさん
16/10/10 22:06:38.74 GJ6N0Utq.net
>>860
実は俺はPerlの可読性なんかを1ミリも語れる状況に無くて
20年前に赤いラクダ本を先輩に貰ったまま本棚で腐らせてるような体たらく
読み書きままならないってだけなんで、どうかお気になさらないでください
880:デフォルトの名無しさん
16/10/11 20:20:36.62 4j+X4FeX.net
そうね、誕生石なら
881:デフォルトの名無しさん
16/10/11 20:49:10.20 5wY1VI8m.net
>>838
@Mathematica
URLリンク(ideone.com)
882:164
16/10/12 00:29:27.25 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
16/10/12 00:30:18.77 RXlYYM2a.net
>>865 の実行結果の例
5+1-32c8 => 8
32+8 => 338
+24c25 => ERROR
119+5 => 1205
1-1+1 => 111
884:デフォルトの名無しさん
16/10/13 20:27:03.99 PLGkmVG9.net
>>823-826 rust 1.8.0
URLリンク(ideone.com)
・正規表現不使用
・最後のjoin処理はideoneのrust 1.0.0に合わせて修正
885:デフォルトの名無しさん
16/10/14 05:03:01.25 ayBWV1jp.net
>>824
URLリンク(ideone.com)
C++。テストは>>835を一部拝借。失礼。
本分書き始める前に色々使いそうな関数書いたものの結局使わず。無駄だった。
あってるかなぁ。
886:片山博文MZ ◆T6xkBnTXz7B0
16/10/24 18:40:09.78 Ea5AKtst.net
お題:隣接行列で与えられたネットワークを可能ならば一筆書きする。
不可能なら「No solution.」と表示する。
887:片山博文MZ ◆T6xkBnTXz7B0
16/10/24 18:56:42.71 Ea5AKtst.net
お題:架空の4ビットCPUの機械語を設計し、その論理式と回路図を出力するプログラムを作れ。
888:デフォルトの名無しさん
16/10/24 23:05:36.84 iFtzBvZM.net
>回路図を出力
図の形式は出題者が指定しなくちゃ。
889:デフォルトの名無しさん
16/10/24 23:33:47.03 Ea5AKtst.net
>>871
.svgか.pdf
890:デフォルトの名無しさん
16/11/04 18:56:54.02 8tGR/IuU.net
お題:1から9までの数字を1回づつ使って分数をつくる。
たとえば123/456789, 3962/17548など。
約分すると1/8になるものをすべてもとめる。
891:デフォルトの名無しさん
16/11/04 19:08:46.32 XfxE6vHI.net
4ケタの順列を総なめしながら8倍してチェックするのかな
3024個みたいだからたいしたことなさそう
892:デフォルトの名無しさん
16/11/04 22:07:13.71 UQXTh2xL.net
>>873
URLリンク(ideone.com)
893:デフォルトの名無しさん
16/11/04 22:20:51.84 K4HA426Y.net
>>873
URLリンク(ideone.com)
894:デフォルトの名無しさん
16/11/05 07:20:45.14 JpuKs6gN.net
>>873
URLリンク(ideone.com)
C++。総当たりのはずだけど、あってるかな?
895:デフォルトの名無しさん
16/11/05 07:36:20.45 JpuKs6gN.net
>>876
しゅごい。
896:デフォルトの名無しさん
16/11/05 08:01:48.28 eq+4G+9Q.net
>>873 Java
URLリンク(ideone.com)
897:デフォルトの名無しさん
16/11/05 19:59:02.35 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:デフォルトの名無しさん
16/11/05 20:10:30.03 4QNuq7Ui.net
>>879
なるほど、どうせ数が知れてるから真面目に順列でやる必要ないのかw
899:164
16/11/05 22:55:55.41 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:デフォルトの名無しさん
16/11/05 23:03:21.88 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:デフォルトの名無しさん
16/11/06 10:45:05.08 Ls7dpV42.net
>>873 類題
お題:1から9までの数字を1回づつ使って引き算をつくる。
たとえば123-456789, 3962-17548など。
引き算すると44444になるものをすべてもとめる。
902:デフォルトの名無しさん
16/11/06 11:16:41.58 BmMxYEOk.net
>>884 C
URLリンク(ideone.com)
903:デフォルトの名無しさん
16/11/06 12:39:57.86 1PuOCcw9.net
>>884 Java
URLリンク(ideone.com)
書き換え2行
904:デフォルトの名無しさん
16/11/06 14:47:56.12 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:デフォルトの名無しさん
16/11/06 15:31:09.29 +kwTAqkL.net
>>873 >>884 c
URLリンク(ideone.com)
・全パターンをチェック
・肝心な部分(comb, permute)はぐぐったサイトから無断で拝借しました
・セパレータ要素も一緒に混ぜとく案は>>883さんを参考にしました
・一部の関数名(permutations_do)について>>887さんを参考にしました
906:デフォルトの名無しさん
16/11/06 16:07:27.17 1MCBSGi9.net
>>884 Io
Range
1234 to(9876)select(i,
(i ..(i+44444))asMutable sort =="123456789
)map(j,(44444+j).."-".. j)
907:デフォルトの名無しさん
16/11/06 19:36:04.77 jK1sWMF7.net
URLリンク(twitter.com)
> せんぱいは、10億以下の整数の中で、最も約数の多い整数を求めるプログラムを書けますか?
908:デフォルトの名無しさん
16/11/06 20:36:12.30 9KctHGA8.net
直感的には重複しない素数の積だと思うけど証明はできんなw
909:デフォルトの名無しさん
16/11/06 23:07:17.87 1PuOCcw9.net
>>890 Java
URLリンク(ideone.com)
あまり考えずに
910:デフォルトの名無しさん
16/11/06 23:39:17.02 jK1sWMF7.net
>>892
Good Job
911:デフォルトの名無しさん
16/11/06 23:40:47.89 jK1sWMF7.net
>>892
Good Jobじゃなく正解というべきだったな
912:デフォルトの名無しさん
16/11/07 00:17:44.47 +ilf/hxD.net
>>892
どういうロジックかさっぱりわかんないやw
でも、
newYakusu += yakusu;
これはちょっとおかしい気がするw
913:デフォルトの名無しさん
16/11/07 00:55:26.00 MDpsc3Qw.net
newYakusu *= 2;
が正解だろうな、たぶん
914:デフォルトの名無しさん
16/11/07 01:14:46.43 t5QB3k9f.net
っていうか、2*3*5は2*3の2倍の約数があるのはわかるけど、
2*2*2は2*2より1つ多いだけだと思うんだけど...
まあたぶん俺が何か勘違いしてるんだろうなw
915:デフォルトの名無しさん
16/11/07 01:18:30.50 N5kIq+jA.net
重複ははずしてだろ。ふつうに。どうみても2べきが小さいから。
916:デフォルトの名無しさん
16/11/07 09:25:12.04 VzgYAniQ.net
素因数の指数+1をすべて掛け合わせれば約数の数になる
917:デフォルトの名無しさん
16/11/07 19:37:58.99 ZbCfelvl.net
>>899
素因数分解がむずかしいね,テーブルで持っておくしかないか
918:デフォルトの名無しさん
16/11/07 21:09:59.66 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:デフォルトの名無しさん
16/11/07 21:37:10.62 VzgYAniQ.net
>>901
URLリンク(ideone.com)
>>892の素数リスト、19が抜けてるやw
リスト表示するようにしても931170240が出てこないからおかしいなと確認したら初歩的なミスw
920:デフォルトの名無しさん
16/11/08 02:53:20.88 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:デフォルトの名無しさん
16/11/09 05:42:59.95 rWt9CCW+.net
>>890
@Mathematica
URLリンク(ideone.com)
922:デフォルトの名無しさん
16/11/09 09:54:20.69 bJUc+90s.net
>>890
>>902 を参考に C++
URLリンク(ideone.com)
923:デフォルトの名無しさん
16/11/09 12:57:49.64 n6HvGTQo.net
hello worldを出力しなさい
但し文字リテラルと数字をコード中に書いてはいけません
924:デフォルトの名無しさん
16/11/09 13:07:00.37 DsWyA9Yw.net
>>906
誰得。
925:デフォルトの名無しさん
16/11/09 13:39:36.94 RQn7BeEP.net
>>906
URLリンク(ideone.com)
URLリンク(ideone.com)
926:デフォルトの名無しさん
16/11/09 14:40:02.73 yNpdMLCi.net
>>906
ruby -e 'class HelloWorld ;end; p HelloWorld'
927:デフォルトの名無しさん
16/11/09 15:20:35.35 7Gidw00Y.net
>>906
URLリンク(ideone.com)
928:デフォルトの名無しさん
16/11/09 15:22:04.34 7Gidw00Y.net
可読性の高いコードができたぜ
929:デフォルトの名無しさん
16/11/09 15:57:41.78 R5k7JcnE.net
>>906
URLリンク(ideone.com)
930:デフォルトの名無しさん
16/11/09 16:09:57.80 RQn7BeEP.net
>>906
URLリンク(ideone.com)
標準入力はコードのうちに入りますか?
931:デフォルトの名無しさん
16/11/09 18:09:11.97 w47niDgV.net
>>906
文字リテラルは禁止だけど文字列はOK?
932:デフォルトの名無しさん
16/11/09 18:11:01.84 w47niDgV.net
>>906
これに似てるね
普通じゃないHello World問題「Restricted Words」の解説記事 #伝説 #しえる|CodeIQ MAGAZINE
URLリンク(codeiq.jp)
933:デフォルトの名無しさん
16/11/09 19:45:29.90 B1AmaaJH.net
>>906 Squeak Smalltalk
| hello world | thisContext method tempNamesString "=> 'hello world' "
934:デフォルトの名無しさん
16/11/09 21:56:55.91 3MgWSwni.net
>>906
URLリンク(ideone.com)
URLリンク(ideone.com)
935:片山博文MZ ◆T6xkBnTXz7B0
16/11/09 22:31:53.26 A1mSNctr.net
お題:テーブルの上にきれいにきちんと重なったトランプ1セットが置いてあり、全てのカードの表が上向きになっている。
プログラムはカードの並びを入れ換えたり、上からn番目のカードを読み込むことができる。
この仮想的なトランプを操作することによって円周率を求めるプログラムを書け。
936:デフォルトの名無しさん
16/11/09 22:43:42.78 RQn7BeEP.net
まず>>918のコードが見たいなー}
937:デフォルトの名無しさん
16/11/10 00:53:34.51 7cWLs5su.net
>>906
URLリンク(ideone.com)
938:164
16/11/10 01:07:34.71 UjUlxJgT.net
>>908
あんさんは、
Programmingを
楽しんでますなー。
気に入ったぜ。
939:164
16/11/10 01:11:20.89 UjUlxJgT.net
以下、enterprise fizzbuzzみたいな
hellow worldを書く椰子
↓
940:デフォルトの名無しさん
16/11/10 01:21:32.89 rkwF1pIg.net
brainfuckやwhitespeceで文字出力するだけってジェネレータで出来るじゃん
941:デフォルトの名無しさん
16/11/11 21:28:06.13 drAYGWtl.net
>>906
@Mathematica
URLリンク(ideone.com)
942:デフォルトの名無しさん
16/11/12 12:36:20.63 OOJ7Wqnx.net
大文字を出力してるので減点
943:デフォルトの名無しさん
16/11/12 14:05:38.79 FKtxBunI.net
真面目か
944:デフォルトの名無しさん
16/11/12 14:44:10.92 5nMDDcWB.net
>>906 C
URLリンク(ideone.com)
945:デフォルトの名無しさん
16/11/12 18:06:10.50 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:デフォルトの名無しさん
16/11/12 18:31:12.94 kNoTIrA7.net
>>928
>3桁に区切って
の意図がわからない
普通に多桁長加算の実装じゃないのか?
947:デフォルトの名無しさん
16/11/12 18:50:09.31 8285RMD/.net
多桁長の演算を実装するだけのようだし
3桁に区切るって限定しなくてもいいよな。
948:デフォルトの名無しさん
16/11/12 19:55:55.39 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:デフォルトの名無しさん
16/11/12 20:04:46.68 8285RMD/.net
>>931
こりゃすごい!
今まで最短の上に可読性が高い!
950:デフォルトの名無しさん
16/11/12 20:22:45.93 X4UPo+EY.net
>>931
ideoneでもローカルでもダメだったゾ
URLリンク(ideone.com)
951:930
16/11/12 21:03:19.70 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:デフォルトの名無しさん
16/11/12 22:58:47.72 VjO69xXO.net
>sizeof(long)が8の環境で確認してた
あれま?
paiza.IOではちゃんと動いたけど
ideoneやCodeIQではダメだったか
953:デフォルトの名無しさん
16/11/13 00:35:59.69 GDVX8Ikh.net
>>931
>数年前に同じお題を
>>915のCodeIQの問題とかじゃね?
954:デフォルトの名無しさん
16/11/13 08:49:46.08 y8U2/o7H.net
>>906
URLリンク(ideone.com)
955:デフォルトの名無しさん
16/11/13 09:05:29.71 FuKHFetX.net
お題:nビットのグレイコ^ドを生成する。
例
n 3
000
001
011
010
110
111
101
100
S
956:デフォルトの名無しさん
16/11/13 09:14:09.45 FuKHFetX.net
お題:nビットのグレイコードを生成する。
例
n=3
000
001
011
010
110
111
101
100
957:デフォルトの名無しさん
16/11/13 11:09:32.80 w9Y83CjX.net
>>939
@Mathematica
URLリンク(ideone.com)
958:デフォルトの名無しさん
16/11/13 12:26:26.96 ArrhAnA/.net
>>939 Java
URLリンク(ideone.com)
brainfuckでやろうかなと思ったが、少し考えてめんどくさくなってやめた
959:デフォルトの名無しさん
16/11/13 19:09:07.56 EpE2S11k.net
>>939
C#
URLリンク(ideone.com)
>>941
こんな短く書けるのかw
ガックリ来たわ
どういうロジックかさっぱり分からんw
960:デフォルトの名無しさん
16/11/13 20:45:37.87 qMZbrJPH.net
>>942
ニコニコ百科からの転載でアレだけどこれ抑えてれば理解できるんじゃね
>二進数を1ビット右にシフトし(先頭は0)、元の二進数と各桁で排他的論理和をとると得られる。また、1ずつ増やした場合、グレイコードで変化する桁は、二進数で0が1に変化する桁(繰り上がる先の桁)に等しい。
入力数値の分だけ1をシフトさせてやりゃ入力数値が桁数に変換できるから
あとはその桁数に達するまでforループ回して元数値と右シフト数値の排他的論理和とって2進表示し続けてる感じだと思う
無駄がなくてスマートなプログラムな感じがするけどsubstring(1)だけよく分からない
961:デフォルトの名無しさん
16/11/13 20:53:45.16 ArrhAnA/.net
>>943
指定桁数の2進数を作るのに最上位ビット捨ててる
n=3だと1xxxの文字列作って一番左削ってる感じ
printf等で指定桁数の2進数作れりゃそっち使うんだけどw
962:デフォルトの名無しさん
16/11/13 21:00:49.81 qMZbrJPH.net
>>244
桁数調整の為に一旦論理和とってから最初の1だけ捨ててるのか
勉強になりました
963:デフォルトの名無しさん
16/11/13 21:09:45.44 EpE2S11k.net
>>943
なるほどそういう定式化された求め方があるのか
グレイコードなんて大昔学校で習って以来まったく使ったことがないから知らなかったよ。
ありがとう
964:デフォルトの名無しさん
16/11/14 04:33:29.92 /TJLzgQW.net
>>939
Nim
URLリンク(ideone.com)
965:デフォルトの名無しさん
16/11/15 07:10:12.87 H9REv+Ri.net
>>906 J
hello =: noun
world =: noun
;:inv nl $~ noun
966:デフォルトの名無しさん
16/11/15 07:34:43.51 HcDSv4MP.net
>>906
ここをクリック >>906
967:デフォルトの名無しさん
16/11/15 07:52:00.92 k57TIQI7.net
次スレあるの?
968:デフォルトの名無しさん
16/11/15 15:27:30.98 Veyi95OJ.net
>>932
何が凄いのか分からん
hello worldがコード中に埋め込まれて
いるのが見えるんだが、だったら
printfでhello world書いているのと同じじゃあないの?
969:デフォルトの名無しさん
16/11/15 16:32:08.46 evn38iuN.net
>>951
printf("hello world");←これの""で囲まれてる部分が文字列リテラル
今回は文字列リテラルと数字を使わずにハロワを出力してみろってお題だからprintfでそのまま書いてたらアウト
970:デフォルトの名無しさん
16/11/15 18:08:30.22 DO3IaX9S.net
>>906のお題は文字列リテラル禁止じゃなく文字リテラル禁止だよ
971:デフォルトの名無しさん
16/11/15 18:30:01.74 evn38iuN.net
そうかそいつはすまなかった読み違えたよ
>>952の2行目の「文字列リテラル」は「文字リテラル」に置き換えて読んでくれ
972:デフォルトの名無しさん
16/11/15 18:59:50.88 DO3IaX9S.net
C言語なら
"hello world"のダブルクオートで括るのは文字列リテラルだけど
文字リテラルはシングルクオートで括るから 文字列リテラル使うprintf("hello world")は合法だよ
973:デフォルトの名無しさん
16/11/15 19:02:18.94 DO3IaX9S.net
brainfuckやwhitespaceは処理系によってはもしかすると文字リテラルや文字列リテラルあるのかもしれないけど
C言語で>>906の問題を解くなら>>931と基本同じように文字コード計算して出力するだけだから大差ないよね
974:デフォルトの名無しさん
16/11/16 06:37:25.19 NqgYpFgU.net
?
975:デフォルトの名無しさん
16/11/16 20:12:56.69 5Ihw572q.net
>>906
C#
URLリンク(ideone.com)
やっぱり面白くないな
976:デフォルトの名無しさん
16/11/16 21:43:19.98 h+UNZgYe.net
" "や'_'を使ってるところがウケ狙いなのかもしれないけど
確かにそんなに面白くない
977:デフォルトの名無しさん
16/11/16 22:49:50.11 opmi2l/i.net
文字コードが絡む問題は悪名高いEBCDICを真っ先に思い浮かべてしまって
その考慮がされてないとちょっと白ける部分がある
978:デフォルトの名無しさん
16/11/20 01:25:08.34 60DKtBPZ.net
>>906
ruby2
print :hello, [:s, :S].map(&:to_s).map(&:ord).inject(:-).chr, :world
URLリンク(melpon.org)
979:デフォルトの名無しさん
16/11/20 13:28:08.49 mWWihz9s.net
>>906 Haskell
URLリンク(ideone.com)
980:デフォルトの名無しさん
16/11/21 08:38:02.28 4Ckt/1Kw.net
>>906 F#
type ``hello world`` = W
printfn "%s" typeof<``hello world``>.Name
981:デフォルトの名無しさん
16/11/21 08:39:37.06 4Ckt/1Kw.net
訂正
>>906 F#
type ``hello world`` = W
stdout.WriteLine typeof<``hello world``>.Name
982:デフォルトの名無しさん
16/11/21 18:47:44.72 3NXFWxK7.net
>>939 ruby
n = 3
(1 << n).times do |v|
puts "%0#{n}b" % (v ^ (v >> 1))
end
URLリンク(melpon.org)
983:デフォルトの名無しさん
16/11/21 19:50:16.01 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:デフォルトの名無しさん
16/11/21 20:56:30.60 /F1fcl9l.net
文字コードに依存するわエンディアンに依存するわ、後出しでどんだけ劣化するんだ
985:デフォルトの名無しさん
16/11/21 23:37:55.18 7dMNwwBf.net
数字もダメ
というのがルール
986:デフォルトの名無しさん
16/11/22 02:14:49.59 bN+iUVDf.net
勝手に問題作り変えちゃダメだよね
国語できなさそう
987:デフォルトの名無しさん
16/11/22 04:14:16.14 hJpZQ6a9.net
>>906
URLリンク(ideone.com)
C++?? 既出の回答に感動してパクってみた。
数字自作してる時点であんまり問題の意味ないよね。
体をなしてないというか。
988:デフォルトの名無しさん
16/11/22 05:24:33.85 7Ti0FWyJ.net
>>906
URLリンク(ideone.com)
Python3 HQ9+的アプローチで数値計算してない
989:デフォルトの名無しさん
16/11/22 08:07:22.61 ofQaf/jO.net
リバースエンジニアリングしてもコード中にリテラルが無いので解読されにくいという事だよね
990:デフォルトの名無しさん
16/11/22 08:58:18.46 hJpZQ6a9.net
秘密主義は技術の向上を阻害するのであんまり興味ないな。
991:デフォルトの名無しさん
16/11/22 11:24:14.19 O62ysXRT.net
でも「神秘的!ステキ!」とか言われてクラッカーやハッカーにモテるかもよ
992:デフォルトの名無しさん
16/11/22 20:14:09.73 svcAyLEK.net
>>906 Common Lisp
URLリンク(ideone.com)
993:デフォルトの名無しさん
16/11/22 21:11:42.55 0aK0hXHG.net
>>906 c
URLリンク(ideone.com)
・数字無し
・四則演算ビット演算無し
・文字リテラル文字列リテラル無し
・移植性と他の環境で動く保障無し
>>906 ruby
・バッククォートつこうた
puts `echo hello world`
994:デフォルトの名無しさん
16/11/22 22:00:15.16 GG9ZZPlA.net
>>976
cの方面白い
細かいけどreturn 0;に数字使われて
995:るのに笑ってしまった
996:デフォルトの名無しさん
16/11/22 22:12:48.53 bzMDKvPC.net
bash
$echo hello world
997:デフォルトの名無しさん
16/11/22 22:32:08.95 GG9ZZPlA.net
それがありなら
c++
URLリンク(ideone.com)
998:デフォルトの名無しさん
16/11/22 22:33:06.33 GG9ZZPlA.net
もう出てたか
999:デフォルトの名無しさん
16/11/23 03:02:34.05 1DVlaY/L.net
>>976
その手があったか。思いつかなかった
1000:デフォルトの名無しさん
16/11/23 16:23:56.87 zVQCWlzE.net
>>977
> return 0;に数字使われてる
どわーっ!!
>>906 c
URLリンク(codepad.org)
・移植性と他の環境で動く保障無し
(少なくともideoneじゃコンパイルエラー
変形して通しても次の問題が出てきて駄目)
1001:デフォルトの名無しさん
16/11/23 17:00:53.66 v3lmFY9L.net
bash
$cat message.txt
1002:164
16/11/28 21:11:05.16 rbBqsttl.net
>>906 Perl
sub AUTOLOAD {($AUTOLOAD =~ /::(.+)$/)[0]}
print Hello()." ".World()."\n";
1003:164
16/11/28 21:24:43.26 rbBqsttl.net
>>984
しまった、listのindexに0を使っちゃってる。
return 0;がダメ?かもしれないならば数字使っちゃダメ??
ならばこうか…
>>906 Perl
sub AUTOLOAD { $AUTOLOAD =~ s/^.*:://; $AUTOLOAD }
print hello()." ".world()."\n";
1004:164
16/11/28 21:42:11.18 rbBqsttl.net
>>906 Perl つか、これでイイジャン。
package hello_world;
print join ' ', split '_', __PACKAGE__;
連投スマソ
1005:デフォルトの名無しさん
16/11/28 21:56:43.31 dQXmDcQq.net
文字リテラル知らんのか?
1006:164
16/11/28 22:24:35.04 rbBqsttl.net
"hello world"の文字列リテラルだけじゃなく
" "もダメてことか…orz
' 'は一応「文字」だけどまぁ歓迎されない感じだな
もうひと工夫いるけどマンドくさくなってきた
1007:デフォルトの名無しさん
16/11/29 19:26:40.96 LsagP9/y.net
コードとコンパイラによっては最適化で文字が埋め込まれることに
1008:デフォルトの名無しさん
16/11/29 21:35:16.55 1MA0K2jV.net
先入れ中出しのアルゴリズムを実装せよ
1009:デフォルトの名無しさん
16/11/29 21:39:13.43 +UdcctZr.net
やだ、できちゃう
1010:デフォルトの名無しさん
16/11/29 21:49:39.94 PX7t+lnB.net
先っちょだけだから
1011:デフォルトの名無しさん
16/11/30 01:45:20.18 b7dyxQXg.net
>>990
C++にはSTLにQueueあるからねぇ。
今更、作る意義がわからない。
1012:デフォルトの名無しさん
16/11/30 04:13:31.77 b7dyxQXg.net
って、ネタかよ。真面目に答えるんじゃなかった。
1013:デフォルトの名無しさん
16/11/30 12:22:48.19 y2jQ/DIV.net
STLは知らないけど.NETのキューって要素1つずつしか出し入れできないんだよね
これだとバッファーとしては使いづらいから自作したわ
1014:デフォルトの名無しさん
16/11/30 12:44:08.74 UIwN06Hs.net
LINQ使えばいいんじゃね
1015:デフォルトの名無しさん
16/11/30 23:47:33.27 8E5tVjA8.net
Queueって先入れ中出しなん?
1016:デフォルトの名無しさん
16/12/01 00:54:11.48 NHXaAvDm.net
それもネタなんだろ
1017:デフォルトの名無しさん
16/12/01 06:10:42.69 I/74Zq7s.net
次スレありますでしょうか。
1018:デフォルトの名無しさん
16/12/01 15:05:04.44 HhJrKDKy.net
t
1019:小倉優子 ◆YUKOH0W58Q
16/12/01 15:05:24.69 HhJrKDKy.net
∧,,,∧
( ・∀・) 1000ならジュースでも飲むか
( )
し─J
1020:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています