X



プログラミングのお題スレ Part12
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/09/28(金) 10:09:07.13ID:phwOkayR
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

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

前スレ
プログラミングのお題スレ Part10
https://mevius.5ch.net/test/read.cgi/tech/1514772904/

プログラミングのお題スレ Part11
https://mevius.5ch.net/test/read.cgi/tech/1524570314/
0060デフォルトの名無しさん
垢版 |
2018/10/08(月) 23:14:43.42ID:c9HgNpeF
>>59
それは良いとしても ( (c-122.1)/365.25 ).to_i の類の表現が他の個所にも複数あり
この内のどれかが
p (5.151/1.717).to_i #=> 2
のようにならないとはコードをみただけでは明確ではなく
剰えrubyのFloat classの精度は実装依存であるためこの様な処理はすべきではない
0061デフォルトの名無しさん
垢版 |
2018/10/08(月) 23:58:05.73ID:5rk01rQ6

ruby って IEEE 754 に準拠してないの?
信じ難いなそれ
使い物にならないじゃん
0064デフォルトの名無しさん
垢版 |
2018/10/09(火) 07:49:23.39ID:G0ViTg21
関係ないってそういう意味ではないのでは?
>>61の指摘することとIEEE 754は関係ないってだけで。
例えば32bitか64bitでdouble型の精度が違うなんて別に珍しいことではないと思うんですけど。
0065デフォルトの名無しさん
垢版 |
2018/10/09(火) 19:02:39.94ID:jSAcVkU7
> 32bitか64bitでdouble型の

ん? 32bitのdoubleなんてありえるの?
IEEE 754以外で倍制度を決めてる何かがあるの?
0066デフォルトの名無しさん
垢版 |
2018/10/09(火) 21:21:14.72ID:7Krlta4j
>>60
たかだか30行程度のループも再帰もない一本道なので具体的に示してもらえるとありがたいです。
この種のプログラムは地デジの日付情報が MJDで ARIBの規格書にも載っていて、
ごく一般的に使われているので、もし問題があるようならばなんとかしたいですよね。

>( (c-122.1)/365.25 ).to_i
浮動小数点で JD が扱える精度+αくらいならこれは問題ないと思いますが。
c は整数ですし、分母の 365.25もすでに説明しましたね。
グレゴリオ暦6239年で JD が 4000000辺りで分子が 365.25の倍数前後は
4000217.1/365.25 と 4000218.1/365.25 だから仮数部が 19bitほどあればいいわけですね。
# こんな定数のままだとコンパイラが最適化してしまいますけどね

組み込み用途などによっては考慮すべきかもしれないけれど、
最初のお題(>>55 )ってそういう意図があったのでしょうか?
>このサイトに書いてあるとおりに作るとプログラムの結果は正しくならない
これは特定の環境に限られたものを指していたのかな?
0067デフォルトの名無しさん
垢版 |
2018/10/09(火) 21:40:48.90ID:BHyo+myF
精度的に問題ないって理解してれば良いのでは
よく理解してない人が小数点使う必要ない場面で使って事故って何も分かりませんみたいな事あるし
コンシューマゲームなんかだとシビアなんで、癖みたいにしておかないとハマってしまうけど
0068デフォルトの名無しさん
垢版 |
2018/10/09(火) 22:33:03.53ID:uKgwXIAC
>>55はココからが本当の本題

@ >>58のコードでの誤記の指摘は概ね正解 ただ>>58のコードの修正だけでは紀元前に対応していない 紀元前が対応するように修正しなさい
A @のプログラムの通日を整数の通ナノ秒にして、ナノ秒までの時刻を正確に相互変換できるようにしなさい
B Aにうるう秒をいれて正確に相互変換できるようにしなさい(制約で問題が発生する場合、問題が発生する時刻を書きなさい)
  参考URL:http://maia.usno.navy.mil/ser7/tai-utc.dat

Bは普通にやったら結構めんどい課題と考えられる
力技でやるなら暇人以外にはオススメしない(力技でやらないほうがいいと一応警告しておいたからな)
コードの一部を出力するコードをサクッと作るぐらいの力量がなければ
きっとサクッとはできないしサクッと結果の評価もできないと考えられる
0069デフォルトの名無しさん
垢版 |
2018/10/09(火) 22:35:06.29ID:uKgwXIAC
訂正
(正)>>57
(誤)>>58
0070デフォルトの名無しさん
垢版 |
2018/10/09(火) 22:56:04.77ID:uKgwXIAC
https://ideone.com/fF1kvl
Bで使えるデータは用意しておいた
気が向いたヤツはチャレンジしなさい
0072デフォルトの名無しさん
垢版 |
2018/10/10(水) 00:03:10.45ID:uHP11E7s
C言語スレとかのいろいろな所に出没してる半角先生だ
どこでも相手にされなくなったから出題しに来た
0073デフォルトの名無しさん
垢版 |
2018/10/10(水) 09:42:44.92ID:hOT3iUsl
サマータイムスレでの暴論って何なんだろう?

まさかのサマータイム賛成なんて奴だったら許せんな。
0074デフォルトの名無しさん
垢版 |
2018/10/10(水) 16:39:18.23ID:slDdF7J+
お題
倍精度実数で整数部分が正確に表現できる最大値を求める
0075デフォルトの名無しさん
垢版 |
2018/10/10(水) 17:03:11.31ID:8BTNYbZT
浮動小数点実数型と言えど最大要素に近い
部分は、整数×2^整数という形の整数也
0078デフォルトの名無しさん
垢版 |
2018/10/10(水) 18:05:44.00ID:TfVezTBt
区間を求めるなら仮数部だけで収まる最大値だけど、
とある数の整数部が正しく表現されているだけなら仮数部も込みで double の最大値が答え

それを std::numeric_limits<double>max() や DBL_MAX を使わずに計算せよ、ということか
0079デフォルトの名無しさん
垢版 |
2018/10/10(水) 19:38:40.27ID:TfVezTBt
>>74を2分探索で計算で出すコード書いてて ideone のコンパイラのバグ見つけた気がする

https://ideone.com/D3ip5M
if 文の条件式の値が1なのに実行されない
find_max<char> とか int32_t で起きる

何か間違ってるかな
0080デフォルトの名無しさん
垢版 |
2018/10/10(水) 20:37:17.47ID:GOApHyvI
符号付き整数オーバーフロー(未定義動作)のせいで
変な最適化でもかかってるんじゃね?
0081デフォルトの名無しさん
垢版 |
2018/10/10(水) 21:07:51.69ID:3iBo9D9z
>>68
通常 JDは UTCを元にするので閏秒は考慮しないと思いますよ、
天文計算などする場合は必要に応じて UT1とかに変換しているのじゃないかと?
0082デフォルトの名無しさん
垢版 |
2018/10/10(水) 22:22:14.63ID:TfVezTBt
>>80
なるほど。
オーバフローが未定義動作だとすると符号付整数の最大値を求めるのは難しそうだな。
0083デフォルトの名無しさん
垢版 |
2018/10/11(木) 00:30:47.35ID:p15CvoFg
ものすごい頭悪いこといってるわ。。。

  UTCは う る う 秒 入 れ た 時 刻 のことだぞ

マジでなんでこんな頭悪いの

天文でつかわれるユリウス日なんかはアホがいうとおり固定
1光年も固定でもないとヤバイからな
1光年は光が1ユリウス年(365.25日)進む距離になる

そもそもオレの課題ではそんなことを問題になんかしてないからな
課題どおりにやればいい
0084デフォルトの名無しさん
垢版 |
2018/10/11(木) 00:34:27.93ID:p15CvoFg
低学歴知恵遅れが知ったぶりしてハジかく典型的な例といっていい
低学歴知恵遅れはいちいち自分が低学歴知恵遅れですと自白するからな
0085デフォルトの名無しさん
垢版 |
2018/10/11(木) 01:18:58.62ID:ZbBeURnP
おまえまたくっさいくっさい自演しとんのか
0087デフォルトの名無しさん
垢版 |
2018/10/11(木) 13:22:48.89ID:yY2EC70D
相手にされなくなったんで問題だせば自動的に相手にされると思い込んでいる
その辺りが半角先生の思考の限界
0088デフォルトの名無しさん
垢版 |
2018/10/11(木) 14:46:25.14ID:MYvNBgY5
ここが適切なのかわかりませんが、知恵を頂けたら幸いです。
当方CGクリエーターで、プログラミングの知識は殆どありません。
そこで質問なのですが、
Aのオブジェクトの座標値が(-1,-2,-3)として、Bのオブジェクトの座標値が(1,2,3)の場合、
Bのワールド位置を維持して、BをAのローカル座標位置へ移動させるには
どのような行列式になるでしょうか?
ネットで座標変換とか色々調べてみましたが、子のワールド位置を維持した状態で
親に該当するローカル座標へ移動させる方法がわかりませんでした。

本来の目的としては、
CGアニメーションソフトのコンストレイント機能にペアレントがありますが、
それを行列式(ノード)で行いたいのです。
(コンストレインのペアレントとは、
時間軸上の任意の位置で親子関係の接続や解除を行うことが出来る機能です。
その接続/解除時には、子は現在のワールド位置を維持します。
0091デフォルトの名無しさん
垢版 |
2018/10/11(木) 16:45:05.30ID:NcfxmDj4
>>88
>Aのオブジェクトの座標値が(-1,-2,-3)として、Bのオブジェクトの座標値が(1,2,3)の場合、

(1,2,3) を (-1,-2,-3) からの相対値で表すということなら
(1,2,3) 引くことの (-1,-2,-3) イコール (2,4,6)
0092デフォルトの名無しさん
垢版 |
2018/10/11(木) 21:49:13.39ID:anEb94RG
>>68 >B Aにうるう秒をいれて正確に相互変換できるようにしなさい
>>83 >UTCは う る う 秒 入 れ た 時 刻 のことだぞ
うるう秒を入れるでなく、外すが正解ですね。すでに UTCには閏秒が入っていますから。
UTC(協定世界時)は TAI(国際原子時)を元に閏秒で補正して UT1(世界時)に合わせています。
7:00:00(UTC)の一日先の時間が24h+-1sec(閏秒)でも時刻は7:00:00(UTC)となるわけです。
よって JDに24hを足すと翌日になり JD/24h%7で曜日が分かります。
未来の日付も計算可能ですが、閏秒を入れないTAI(国際原子時)では地球の自転次第で変化します。

>天文でつかわれるユリウス日なんかはアホがいうとおり固定
逆です、天文計算で使うような時間は UT(世界時)を基準にしています。
それは天体の運動方程式を解くために基準の時刻からの正確な時間が必要だからです。
0093デフォルトの名無しさん
垢版 |
2018/10/11(木) 23:02:27.87ID:p15CvoFg
https://warwick.ac.uk/fac/sci/physics/research/astro/people/steeghs/mpags-as2/mpags_techniques_2012_1b.pdf

・International Atomic Time (TAI)
 - SI second defined by frequency of hyperfine transition of cesium133
 - Measured and counted with international network of atomic clocks

・Co-ordinated Universal Time (UTC)
 - Our civil time (in winter)
 - Based on SI second, with 86400s/day
 - Kept synchronised with UT1 since 1972 by addition of leap seconds
 - Leap seconds not added to TAI, so TAI-UTC is not constant
 - Currently (Nov 2012) TAI - UTC = 35s
 - Use of leap secs currently under discussion (inconvenient for astro)

・Co-ordinated Universal Time (UTC)
 - Currently (Nov 2012) TAI - UTC = 35s

・Calendar is independent of time system, so state both, e.g.
 - 2011 November 11 11:00:00.0 UTC
 - 2011 November 11 11:00:34.0 TAI
 - JD 2455876.958333 UTC
 - JD 2455876.958727 TAI

コレでオレの課題ができないなら
人間やめたほうがいい
0095デフォルトの名無しさん
垢版 |
2018/10/12(金) 02:02:42.62ID:ZYTXH3K/
プログラミングのお題
「10以下の素数の和を求めよ」

答え
「17。コード書くまでもないんだがこれでいいのか?」

これはおかしいだろう
0097デフォルトの名無しさん
垢版 |
2018/10/12(金) 02:35:54.36ID:xbwLlD7o
え?じゃ、こんな感じ?

perl -e 'for($n=1;(2**$n)!=(2**$n+1);$n++){} printf "%d, %.0f\n", $n, 2 ** $n;'

動かすとこう出るが。

53, 9007199254740992
0100デフォルトの名無しさん
垢版 |
2018/10/12(金) 09:39:43.72ID:1UpgDbu2
first(10)って普通は最初の10個を列挙するもんだがrubyは違うのか…
名前重要ってわりにセンスないな
0101デフォルトの名無しさん
垢版 |
2018/10/12(金) 10:33:46.63ID:oIm8hJ6E
じゃあちなみにこの関数名は何ならいいんだ?
お前の考えを言ってみろよ
センスを判定してやるよ
0102デフォルトの名無しさん
垢版 |
2018/10/12(金) 10:49:03.90ID:6UbBSJp3
first(10)が10までってセンスは普通におかしいだろ
つーかrubyも最初の10個返すんだが…?
0104デフォルトの名無しさん
垢版 |
2018/10/12(金) 13:50:43.62ID:oIm8hJ6E
ruby/ruby: The Ruby Programming Language
ttps://github.com/ruby/ruby

そりゃそうだろ
スクリプト言語のソースコードは公開されてて誰でも読めるが
大抵のユーザーは書かれたものを脳死で信じるしかないだろ

それともお前は使うスクリプト言語のソースコードは全部精査してるのか?
コンパイラのソースコードまで熟読してるのか?

ンなモン、脳死で信じるしかねーだろ
0105デフォルトの名無しさん
垢版 |
2018/10/12(金) 13:54:46.58ID:VST6PShP
最近JavaとかC++とか少ないな
Javaは例の騒動があるから仕方ないとしてCとかC++はないんか
0106デフォルトの名無しさん
垢版 |
2018/10/12(金) 16:36:53.91ID:OhxorjMK
>>105
>>79はC++だね。
0109デフォルトの名無しさん
垢版 |
2018/10/12(金) 20:13:31.37ID:jorGy8Se
>>79
gcc8.1だと

char
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 1
(!(n > d && is_usual_num(n))) 0
break
calculated = -128
numeric_limits = 127
128
127

となるね
0111デフォルトの名無しさん
垢版 |
2018/10/12(金) 21:27:58.87ID:+EEi3z6C
なぜか言語自体のコード読む読まないの話になってるけど、これくらいのコードなら動かせばすぐにfirstが何してるか分かるじゃん、って思っただけだわ
0112デフォルトの名無しさん
垢版 |
2018/10/13(土) 10:05:11.14ID:m4emGyLz
お題
方程式 1/n = 1/x + 1/y (ただし、n,x,yは正整数でx≦y)について考える
例えばn=4のとき、1/4 = 1/5 + 1/20 = 1/6 + 1/12 = 1/8 + 1/8 より解の個数は3である
上限Mが与えられたとき、上の方程式の解の個数がMを超える最小のnの値を求めよ

2 -> 4
5 -> 12
10 -> 24
100 -> 1260
1000 -> 180180
10000 -> 116396280
250000000000 -> ?
0114デフォルトの名無しさん
垢版 |
2018/10/13(土) 11:32:11.63ID:QkDteBzw
>>112
n = 2の時
1/4 + 1/4 = 1/2
1/3 + 1/6 = 1/2
だけだから結果は2だよ
n=4の時より大きくなることはあり得ないし
0118デフォルトの名無しさん
垢版 |
2018/10/17(水) 11:31:35.00ID:UkGf74ne
お題
[0,1]の一様乱数をN個発生させ、小さい順に並べてa(1), ..., a(N)とする
同様にもうN個作って小さい順にb(1), ..., b(N)とする

同じ順位同士で(a(1), b(1)), ..., (a(N), b(N)) とペアを作った時、a>bとなるペアの個数は0〜N個になるが、その分布は?
またa, bを一様分布以外の分布から取ってくるとどうなる?
0120デフォルトの名無しさん
垢版 |
2018/10/17(水) 13:07:54.93ID:OYXuI76a
>>119
シミュレーションしてみるのも面白いかなと
0121デフォルトの名無しさん
垢版 |
2018/10/17(水) 13:50:50.88ID:8efdFbKL
趣味で
0124デフォルトの名無しさん
垢版 |
2018/10/17(水) 15:55:41.32ID:mC+TJhph
数学に逃げちゃ駄目だ。
0125デフォルトの名無しさん
垢版 |
2018/10/17(水) 17:12:22.62ID:DXXGfTNm
乱数全部同じパターンを引いてもその結果のみから分布を論じてかまわないというならそれでもいいがな
0126デフォルトの名無しさん
垢版 |
2018/10/17(水) 17:34:51.31ID:slnS35LM
ちょっとやってみた
J で

NB. monadic sort operator
sort=: /:~

NB. monadic operator returns count of a_n > b_n
NB. where a and b is sorted y-length array of rand(1000)
do1=: verb define
a =. sort ?y$1000
b =. sort ?y$1000
+/ (a>b)
)

NB. dyad operator returns count of number x in array y
count=: dyad define
+/ (x = y)
)

続く
0127デフォルトの名無しさん
垢版 |
2018/10/17(水) 17:35:05.08ID:IG2KKzqQ
>>118 Squeak/Pharo Smalltalkでシミュレーションのみ
擬似乱数発生器は Squeak の場合 Mersenne Twister(Pharo なら Park-Miller)

| N M random bag |
N := 10.
M := 1e6.
random := Random new.
bag := Bag new.
M timesRepeat: [
| pairs count |
pairs := (random next: N) with: (random next: N) collect: [:a :b | {a. b}].
count := pairs count: [:pair | [:a :b | a > b] valueWithArguments: pair].
bag add: count
].
bag sortedElements

"Squeak =>{
0->981.
1->9873.
2->44008.
3->117136.
4->205258.
5->246203.
6->204286.
7->117345.
8->44247.
9->9702.
10->961} "
0128デフォルトの名無しさん
垢版 |
2018/10/17(水) 17:38:20.84ID:cKcilnbV
>>118 Squeak/Pharo Smalltalkでシミュレーションのみ
擬似乱数発生器は Squeak の場合 Mersenne Twister(Pharo なら Park-Miller)

| N M random bag |
N := 10.
M := 1e6.
random := Random new.
bag := Bag new.
M timesRepeat: [
| pairs count |
pairs := (random next: N) with: (random next: N) collect: [:a :b | {a. b}].
count := pairs count: [:pair | [:a :b | a > b] valueWithArguments: pair].
bag add: count
].
bag sortedElements

"Squeak =>{
0->981.
1->9873.
2->44008.
3->117136.
4->205258.
5->246203.
6->204286.
7->117345.
8->44247.
9->9702.
10->961} "
0130デフォルトの名無しさん
垢版 |
2018/10/17(水) 17:41:12.83ID:slnS35LM
続き
NB. 長さ100の配列で100000回試行
r =: (do1 "0) 100000$100

NB. r を表示
r
=> 43 77 58 31 23 36 59 26 85 15 73 72 4 34 0 26 22 26 85 70 95 2 64 46 22 84 22 86 78 39 51 34 92 94 68 98 47 38 68 92 48 43 19 97 80 18 13 65 76 79 17 88 19 39 72 74 16 54 32 11 99 3 80 32 94 25 87 91 ...

NB. 0...100 の各数値の出現数
(i. 101) (count "0 1) r
=> 109 107 118 94 104 93 98 100 76 87 97 102 93 98 101 94 94 90 112 107 92 103 109 97 112 89 113 118 97 108 96 81 86 103 87 102 107 101 95 90 96 102 96 87 100 88 108 115 97 119 129 104 94 100 104 101 114...

NB. グラフ化
plot (i. 101) (count "0 1) r
https://i.imgur.com/QSKqVC6.jpg

一様分布っぽい
0132デフォルトの名無しさん
垢版 |
2018/10/17(水) 17:47:40.41ID:slnS35LM
理屈で考えると乱数がどんな分布でも a、b の分布が同じならコレの結果は常に同じ分布か
0133デフォルトの名無しさん
垢版 |
2018/10/17(水) 19:01:16.05ID:wdgUzBYj
なんか書き込めん…

>>131

たしかに^^;

pairs := (random next: N) sort with: (random next: N) sort collect: [:a :b | {a. b}].

で同じ分布になった
0134デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:28:10.42ID:9jVKFKz5
ハローワールドの次にやる問題ってなんだろう
0135デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:28:34.01ID:Ny9Q/0jK
ハローワークへ行きなさい
0138デフォルトの名無しさん
垢版 |
2018/10/18(木) 09:27:49.01ID:xtVP5nmJ
>>137
echoコマンドの実装ってことじゃない?
\0xxx や \n も解釈するようなの作ると初心者には結構勉強になるかも。
0141デフォルトの名無しさん
垢版 |
2018/10/19(金) 16:49:17.22ID:F1UCQFsO
お題
標準入力から入力したデータをそのまま標準出力人出力する
0142デフォルトの名無しさん
垢版 |
2018/10/19(金) 17:05:33.84ID:veK9KPY5
http://3dnchu.com/archives/tree-it/
このようなソフトはvisual studioで作るんですか?
なんの言語がいいか教えてください
0143デフォルトの名無しさん
垢版 |
2018/10/19(金) 17:15:05.14ID:gPrGaWTX
>>141
cat
0148デフォルトの名無しさん
垢版 |
2018/10/20(土) 03:08:59.15ID:gD7ZVb6v
iso-8859-2を入力したら文字化けしたりUTF-7を入力したら文字化けしなかったりするのは美しくないから文字コードを指定させないといかん
0149デフォルトの名無しさん
垢版 |
2018/10/20(土) 05:27:36.15ID:qwv4GmvH
>>146
Kotlin
https://paiza.io/projects/jg9Pa-PO2UCwSLFPL3draw

入力はデフォルトのエンコーディングで Java のライブラリ内部で Unicode に自動変換させ、出力は UTF-8 になると想定して作られている。
つまり元の Unicode で \x0080 以上は UTF-8 だと全てマルチバイトになるので化けるようにしてある。
化け方は2通りでサロゲートペアの文字は % になりその他は * になる。
0150デフォルトの名無しさん
垢版 |
2018/10/20(土) 17:10:58.56ID:hxCjYBWY
>>141 Io
File standardInput contents print
0151デフォルトの名無しさん
垢版 |
2018/10/20(土) 17:46:57.83ID:cv2X893a
お題: 超簡単なステートマシン
以下の3つのデータがランダムに入力される。
1: hi
2: wake up
3: sleep
1が入力された場合、状態がwake upであれば「hello」、状態がsleepであれば「zzz...」と出力せよ。
2が入力されたら状態をwake upに、3が入力されたら状態をsleepに移行せよ。
0152デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:05:02.67ID:Nttc2RvP
>>151
つまり、hi以外で2、3に該当しない奴も無視で良いの?(hiは無視で良いんだよね)

データは勝手に標準入力にするけど。
(リダイレクトでファイルからに出来るし)
0153デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:08:05.20ID:Nttc2RvP
あれ、違うぞ?
hiが入力された時、「かつ」wake upだったら”hello”出力か。
んでsleepなら”zzz...”ね。
それ以外無視と。
了解。
0154デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:12:34.08ID:Nttc2RvP
てか、1ー3の数字だけで良いわ。
状態の意味はわかったけど、状態の文字は要らんね。
0155デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:16:14.29ID:xvv7H8Vz
それ以外をどう考慮すべきかは書かれてないから、
ここは「3つのデータがランダムに入力される」を信じたフリをして手抜きをするのが吉

そんなことよりステートマシンなら初期状態は与えろよw
0156デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:28:45.80ID:AUqXYm6F
>>151
python3


state = "sleep"

while True:
x = input("> ")
if x == "hi":
print("zzz..." if state == "sleep" else "hello")
elif x == "wake up":
state = "wake up"
elif x == "sleep":
state = "sleep"
else:
print("invalid input.")
0157デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:42:18.95ID:Nttc2RvP
#include <stdio.h>
#include <conio.h>

int main(void)
{
char c,state = 0;

while(1)
{
c = getchar();
switch(c)
{
case '1':
if(state == '2')
{
printf("hello");
}
else if(state == '3')
{
printf("zzz...");
}
break;
0158デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:43:23.41ID:Nttc2RvP
case '2':
state = '2';
break;
case '3':
state = '3';
break;
default:
break;
0159デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:43:31.11ID:Nttc2RvP
}
}
return 0;
}

バッファ 無い方がいいのかと思ってバッファ無し版。(押したら即時入力)
conio.hは環境依存だけど、どうせWinだろ。
stdio.hのgetcだったら、バッファがあるからEnter押さないとだけど最初の1文字が入る。

面倒臭かったからステータスは数字に直さず文字そのまま使った。
0160デフォルトの名無しさん
垢版 |
2018/10/20(土) 20:20:44.01ID:WvTfEY4N
お題
2つの区間の共通部分を出力せよ

[1,3] [2,4] => [2,3]
(1,2) [1,2] => (1,2)
[0,100) (5,+inf) => (5,100)
(-inf,2] [1,+inf) => [1,2]
[1,2) [2,3) => {}
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況