プログラミングできる人来てください
■ このスレッドは過去ログ倉庫に格納されています
ループに入って来た時、a=1の時はa=25、a=25の時はa=1にしたい If a=1 a=25 If a=25 a=1 みたいにするとループしてるから25になったり1になったりしてしまうのを直したい 1回代入したらフラグをtrueにして、もう1回代入させないみたいにできるけど、もっといいやり方ないかな? if(a = 1) { a = 25; } else { if(a = 25) { a = 1 ; } } Ifの中の命令文に変換と計算の行への移動の2種を入れたらいいんじゃないの >>5 ループ中でその判定を繰り返し行う事に意味がない事に気がつくべき あと>>6 は1と25以外のとき問題が出るから気をつけて >>6 これはひろゆきが見て向いてないと思った奴に似てるな まあ何がしたいのかに依存するのに言わないから答えは発散するよね 頭が悪いやつの質問にありがち Fortranだけど 10 計算式 if a=1 then a=25 goto 10 end if if a=25 then a=1 goto 10 end if >>17 むしろ>>6 の書き方ができないやつのほうが向いてないだろ 基礎アルゴリズムすら組めないで無駄なリソース食うゴミコードを量産するゴミエンジニア >>27 これは恥ずかしい 日本語が理解できてなさそう え、 if a==1 or a==25: swap() スワップすればいいんじゃないか >>30 操作と入力値判定は別で作るのが普通だと思うんだがvipのエンジニア(笑)さんは違うんか? IF分の後に出力して その後いったん初期化すればいいんじゃねえの >>34 入力側で弾く前提なのか、1と25以外の例外処理があるのか仕様確認中なんだけど >>27 プログラム最適化の法則って聞いたことない? >>6 この書き方じゃ分かりにくいだろ 1、25という数字が重要であるってことを 読み手に伝える必要がある a = 25 -a じゃそれがわからん そもそも >>1 を読んだだけで どういうロジックが必要で どういう仕様にしたらいいのか整理がついてないのが判る >>43 それ出来てたらVIPでスレ立てなんてしないだろ 競プロの頭でモノを語るやつ居るからな 賢いけど厄介なタイプ そんで最初に言ってるループがどういうループなのかを説明する必要があるだろう それを言わずして答えとなるコードを書いても、多分大元の要件を満たしてなさそうだな って想像が働く 作った後にその操作で何がしたいかがぱっと見で分かった方が後々修正とかやりやすいんだけどな >>42 追記 じゃ、具体的にどうすればいいかという話だが 以下のようなコメントを書けばいい //aが1の時26-aは25だから、a25になる //aが25の時26-aは1だから、aは1になる //なぜそうするのかは不明。とりあえず動いた a = 26 -a update(1) = 25 update(25) = 1 update(a) = a // updateOnce(a, changed) updateOnce(a, true) = (a, true) updateOnce(a, false) = (update(a), true) パターンマッチはこんな感じで書けるぜ cudaで画像処理アルゴの仕事してるけど速度でcuda intrinsicsの最適化の上をいこうとするとこんなの比じゃないくらいキモい自作インライン関数多用するぞ >>54 速度重視のコードだと やっぱそうなのか・・・ 俺は速度重要じゃないから 基本可読性重視だわ 軽量ループの重複すらある キモいのが必要なときがあるのは分かるが キモいから必要最低限にしような 可読性と再利用性とテストを重視する分野ならこう const switchNM = (n, m) => x => { if ( x === n ) return m; if ( x === m ) return n; }; const switch = switchNM(1, 26); switch(a); >>55 ptxとかいうアセンブラもどきすら使ったりしてるから可読性は死んでるな コメントで必死に説明する感じ そんで return x; 忘れてた~っていうのがテストで検出されるわけよてへぺろ >>6 これじゃ1がやりたいこと出来ないのに称賛されてるのわらう >>60 そもそも普通のcudaカーネル自体がだいぶ読みにくいしもう地獄だよ まあ楽しいんだけど ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる