レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
3代目ねこpと暮らしたい
放課後なぞなぞタイム
手計算でもその数字になる
真面目なやつ書けた
知らないうちに n の上限引き上げれられてた
不真面目なやつは O(n) だからなーっ
手計算の場合、26のx乗を順番に足し算しなきゃならんのが面倒
たぶん繰り返しコードなら簡単になるんだろうな・・・
10 = J もちがう
[ぞwwww
新たなアルファベットが作られてしまった
あってるか知らんけど>>433 になる
たぶんだけど、26で割った時に1ずれてる
O(n)のコード貼っていい?
def GetExcelCode(n)
r = 'A'
(n - 1).times do
r = r.succ
end
r
end
手計算でのやり方は
26^1より大きければ、26をひく
さらに26^2より大きければ、26^2をひく
を繰り返して桁を決めてる
真面目に書いたのはこっち
https://gist.github.com/plonk/495b3d378bf05b72c5d71a78d566c676
rubyずるいのあるが
'A' + 26 == '['
あー、僕のコードもバグってる〜
プログラム環境がないのでExcelで3桁までは計算できるようになった
>>466
多分入門にいい!
https://paiza.hatenablog.com/entry/javascript_intro
ジャバスクリプトか、了解
https://paiza.io/ja/projects/new
コードの書き方忘れたから読んでくる
>>462 のコードで 676 の変換が間違ってた。
>>460 のコードは多分正しい。
先頭の桁って一番上の位のこと?
なんとなく見様見真似で書いてみたけど、どうやって出力するんだこれ
実はわりときれいな構造になっている
ループの書き方が間違ってるっぽくて動かない、うーむ
while・・・ うーむ
あ、うごいた、次は割り算で切り捨てする方法を探さなきゃ
できたできた
数字をABCに変換するのはどうすればいいの?
カレーもう1皿食べていい?
ありがとう、ためしてみる
JSで数字から文字はこんな感じ!
let asciiA = 65
console.log(String.fromCharCode(asciiA + 0)); // A
console.log(String.fromCharCode(asciiA + 1)); // B
console.log(String.fromCharCode(asciiA + 2)); // C
BZ = 26 * 2 + 1 * 26
できたよー
出力がよくわからんから、1行ごとにアルファベットが出る感じだけど、>>433 と同じになった
行を変えずに出力する方法もあるんだろうな・・・
AAA = 26^2 + 26^1 + 26^0
とりあえず、ほぼ初めて組んだJavaScript貼っていいですか
let x = 100000000;
let i = 0;
let asciiA = 65;
while (x > 26**i) {
x = x - (26**i);
i = i + 1;
}
i = i - 1;
while (i>0) {
console.log(String.fromCharCode(asciiA + Math.floor(x / (26**i))));
x = x % (26**i);
i = i - 1;
}
console.log(String.fromCharCode(asciiA + x));
1行で出力する方法考えてみる
>>490
x=27 で [ になるね
あ、本当だ、修正します
このアルゴリズムをお仕事で書いたって本当ですか!?
101ケタ目にデータ入力しちゃらめええええ
朝だよー
おでのクソコード貼って寝てええ?
こっちも修正できたよー
さっきバグ指摘された者です
特殊なところはなにもないよ
とても規則的だよ
あってるかわからん
https://gist.github.com/ryuzensan/9e550838756f10f26a64b1c36448095f
A〜Zのかわりに1〜9の数字で考えてみるといいかもしれない
"1"=1
"2"=2
:
"9"=9
"11"=10
一 = 1
二 = 2
:
九 = 9
十 = 10
一一 = 11
十十=110
十「繰り上がりたくないでござる」
702 とかでバグらないようにするのが難しいね
わかったところで答えをちゃちゃっと作ろうず
また変なことになってきた
数学のお話
ある4桁の整数があるとする、その整数は
ax1000+bx100+cx10+dと表せる、つまり
ax10^3+bx10^2+cx10^1+dx10^0
これは各桁が進数(10)の桁乗の積なので26進数では26^n(桁数)になる
なんでプラスって言いながらクオート打ってるのかわかりません><
さて、数値→文字列
バグ修正してた者ですが、100, 702, 1000, 10000 で正しい出力になりました
AAAAA は 475255 であってます?
桁のくりあがり部分でバグ出なくなりましたー
土=11
士
にしむくさむらい
わし以外にまだやってる人いるんだろうか・・・
これのややこしいところは、ゼロがない、ってこと
計算式は
1x11~1+1x11^0=12
桁の見かけの数字かける進数の桁乗ってことだよ
プログラム初心者の自分がさっきやっとバグ取れたとこなので、他の人はとっくに解決してると思われ
10万行の参考データ作ったよ
https://gist.github.com/plonk/f5d60b49b5d4f8277a37a89e224a6660
>>514-516 >>520 >>523 は自分です、コードの書き方から教えてもらった初心者
各桁に分解して足し算するだけ
進数はいくつか、見かけの数字は10進数に直すといくつかが分かればいいだけ
ゼロを発明したインド人は天才ってことですね
おはよう
ずっと解き続けてるのかすごいな
哲学的なこと言い始めたぞ
これ何の問題やってるの?
7行で解いてる人も居る…
自分の解法は無駄に複雑だったっぽいorz
よく業務で書いてたね・・・・このコード
エクセルの変換のやつね
自分ももっと簡略化したいけど、初心者にはこれが限界と思って寝たい
18278 が ZZZ
18279 が AAAA だと思います
475254 が ZZZZ
475255 が AAAAA かな
そもそも3桁じゃないとこが3桁になってますね
1行表示できました
出力が
A
A
A
みたいになってたので、
AAA
になるようにしてみた
Good!(^ω^)b
自分はあまりの計算を単純に % で書いちゃったのがバグの原因でしたね
26で割ったあまりが26、ってのは無いですからね
ずる
3桁は?
702
強行突破わろた
もう全部それで書いていけばいいんじゃね? 10の8乗まで
はい
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板