したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

3代目ねこpと暮らしたい

1名無しさん:2019/04/24(水) 22:38:04
放課後なぞなぞタイム

412名無しさん:2019/04/28(日) 02:38:06
まってました

413名無しさん:2019/04/28(日) 02:39:54
もっかいいって

414名無しさん:2019/04/28(日) 02:40:30
これ解法今かかんほうがいい?

415名無しさん:2019/04/28(日) 02:41:04
つまり数字をいれたらアルファベットで返すロジック?

416名無しさん:2019/04/28(日) 02:42:04
nの最大値どれくらい?

417名無しさん:2019/04/28(日) 02:43:54
つまるところ26進法みたいなものか

418ハツネツ:2019/04/28(日) 02:45:16
Excelの縦軸は1,2,3,4, ...という風に連番付けられますが、
横軸はA, B, C, ..., Z, AA, AB, ..., AZ, BA, ... ZZ, AAA という風に連番付けられます。

ある整数nが与えられたときに、それに対応する横軸文字列を返してください。

シグネチャ: string GetExcelCode(int n);

例) GetExcelCode(1) == "A"
例) GetExcelCode(2) == "B"

419名無しさん:2019/04/28(日) 02:45:38
なんかそんな関数なかったっけ
ないか

420名無しさん:2019/04/28(日) 02:45:51
ここに貼ればいいの?

421名無しさん:2019/04/28(日) 02:46:13
できた

422名無しさん:2019/04/28(日) 02:46:46
だいたい分かったけど解法かかん方がいいですよね

423名無しさん:2019/04/28(日) 02:47:01
NTP

424名無しさん:2019/04/28(日) 02:48:00
AA = 27やん

425名無しさん:2019/04/28(日) 02:48:50
ZZの次がAAAなのでは

426名無しさん:2019/04/28(日) 02:49:12
逆算のが楽かもしれん

427名無しさん:2019/04/28(日) 02:49:14
10^8入れたら返って来なくなった

428名無しさん:2019/04/28(日) 02:50:08
10^9までいけるしそっちにしたら

429名無しさん:2019/04/28(日) 02:50:09
A = 1 でいいの?

430名無しさん:2019/04/28(日) 02:50:42
まあプログラムできない人間が暗算してもZZの値はわかるのだが

431名無しさん:2019/04/28(日) 02:51:10
暗算っていうか電卓ね

432名無しさん:2019/04/28(日) 02:51:36
せっかくだしジェネリックラムダの練習しながらかく

433名無しさん:2019/04/28(日) 02:52:46
10 J
100 CV
1000 ALL
10000 NTP
100000 EQXD
1000000 BDWGN
10000000 UVXWJ
100000000 HJUNYV

434名無しさん:2019/04/28(日) 03:01:06
nannkamounemui

435名無しさん:2019/04/28(日) 03:04:17
おわり?

436ハツネツ:2019/04/28(日) 03:05:11
すみません、配信切れてました。
ちょうどいいし、音声回復させるために再起動してきます。
ちょっとまっててねん。

437名無しさん:2019/04/28(日) 03:09:10
真面目な解法を考えてたら頭がしびれた

438名無しさん:2019/04/28(日) 03:09:57
逆算については手計算でできちゃうってことは
アルゴリズムは意外と単純?

439名無しさん:2019/04/28(日) 03:11:59
#include <iostream>
#include <functional>
#include <string>
using namespace std;

int main() {
// your code goes her
function<string(int)> solve = [&](int i) {
return (i < 26) ? string(1, 'A' + i - 1) : solve(i / 26) + solve(i % 26);
};
cout << solve(26) << endl;
return 0;
}

Success #stdin #stdout 0s 15240KB

A@

ワロタ

440名無しさん:2019/04/28(日) 03:12:31
というか、数字を英語に変換するのも手計算でいけた
わしプログラム書く環境ないけど

441名無しさん:2019/04/28(日) 03:12:40
26って入れたら答えA@って出たので答えではない

442名無しさん:2019/04/28(日) 03:13:25
>>433と同じやつならでけたけど間違ってるの?

443名無しさん:2019/04/28(日) 03:14:28
今からインスコして基本コードの勉強からしてたら間に合いません

444名無しさん:2019/04/28(日) 03:15:26
出来たといえば出来た

445名無しさん:2019/04/28(日) 03:15:35
おでpythonだけど

446名無しさん:2019/04/28(日) 03:16:46
26 Z
27 AA

702 ZZ
703 AAA

447名無しさん:2019/04/28(日) 03:17:59
18278 ZZZ
18279 AAAA

448名無しさん:2019/04/28(日) 03:19:01
ああ、なるほど、26進数かとおもいきや0がないからややこしいのね

449名無しさん:2019/04/28(日) 03:19:38
手計算でもその数字になる

450名無しさん:2019/04/28(日) 03:33:48
真面目なやつ書けた

451名無しさん:2019/04/28(日) 03:36:59
知らないうちに n の上限引き上げれられてた

452名無しさん:2019/04/28(日) 03:38:20
不真面目なやつは O(n) だからなーっ

453名無しさん:2019/04/28(日) 03:38:27
手計算の場合、26のx乗を順番に足し算しなきゃならんのが面倒
たぶん繰り返しコードなら簡単になるんだろうな・・・

454名無しさん:2019/04/28(日) 03:40:47
10 = J もちがう

455名無しさん:2019/04/28(日) 03:43:43
[ぞwwww

456名無しさん:2019/04/28(日) 03:43:50
新たなアルファベットが作られてしまった

457名無しさん:2019/04/28(日) 03:46:25
あってるか知らんけど>>433になる

458名無しさん:2019/04/28(日) 03:46:45
たぶんだけど、26で割った時に1ずれてる

459名無しさん:2019/04/28(日) 03:47:26
O(n)のコード貼っていい?

460名無しさん:2019/04/28(日) 03:48:14
def GetExcelCode(n)
r = 'A'
(n - 1).times do
r = r.succ
end
r
end

461名無しさん:2019/04/28(日) 03:50:00
手計算でのやり方は

26^1より大きければ、26をひく
さらに26^2より大きければ、26^2をひく

を繰り返して桁を決めてる

462名無しさん:2019/04/28(日) 03:51:03
真面目に書いたのはこっち

https://gist.github.com/plonk/495b3d378bf05b72c5d71a78d566c676

463名無しさん:2019/04/28(日) 03:53:54
rubyずるいのあるが

464名無しさん:2019/04/28(日) 04:06:55
'A' + 26 == '['

465名無しさん:2019/04/28(日) 04:14:16
あー、僕のコードもバグってる〜

466名無しさん:2019/04/28(日) 04:17:26
プログラム環境がないのでExcelで3桁までは計算できるようになった

467ハツネツ:2019/04/28(日) 04:19:15
>>466
多分入門にいい!
https://paiza.hatenablog.com/entry/javascript_intro

468名無しさん:2019/04/28(日) 04:19:27
ジャバスクリプトか、了解

469ハツネツ:2019/04/28(日) 04:21:38
https://paiza.io/ja/projects/new

470名無しさん:2019/04/28(日) 04:22:06
コードの書き方忘れたから読んでくる

471名無しさん:2019/04/28(日) 04:26:15
>>462 のコードで 676 の変換が間違ってた。

472名無しさん:2019/04/28(日) 04:27:02
>>460 のコードは多分正しい。

473名無しさん:2019/04/28(日) 04:35:10
先頭の桁って一番上の位のこと?

474名無しさん:2019/04/28(日) 04:37:47
なんとなく見様見真似で書いてみたけど、どうやって出力するんだこれ

475名無しさん:2019/04/28(日) 04:40:36
実はわりときれいな構造になっている

476名無しさん:2019/04/28(日) 04:45:42
ループの書き方が間違ってるっぽくて動かない、うーむ

477名無しさん:2019/04/28(日) 04:50:19
while・・・ うーむ

478名無しさん:2019/04/28(日) 04:52:51
あ、うごいた、次は割り算で切り捨てする方法を探さなきゃ

479名無しさん:2019/04/28(日) 04:54:44
できたできた

480名無しさん:2019/04/28(日) 04:55:01
数字をABCに変換するのはどうすればいいの?

481名無しさん:2019/04/28(日) 04:55:06
カレーもう1皿食べていい?

482名無しさん:2019/04/28(日) 04:55:42
ありがとう、ためしてみる

483ハツネツ:2019/04/28(日) 04:59:14
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

484名無しさん:2019/04/28(日) 05:03:24
BZ = 26 * 2 + 1 * 26

485名無しさん:2019/04/28(日) 05:06:45
できたよー

486名無しさん:2019/04/28(日) 05:07:12
出力がよくわからんから、1行ごとにアルファベットが出る感じだけど、>>433 と同じになった

487名無しさん:2019/04/28(日) 05:10:25
行を変えずに出力する方法もあるんだろうな・・・

488名無しさん:2019/04/28(日) 05:11:03
AAA = 26^2 + 26^1 + 26^0

489名無しさん:2019/04/28(日) 05:11:38
とりあえず、ほぼ初めて組んだJavaScript貼っていいですか

490名無しさん:2019/04/28(日) 05:12:33
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));

491名無しさん:2019/04/28(日) 05:16:52
1行で出力する方法考えてみる

492名無しさん:2019/04/28(日) 05:17:04
>>490
x=27 で [ になるね

493名無しさん:2019/04/28(日) 05:17:41
あ、本当だ、修正します

494名無しさん:2019/04/28(日) 05:19:16
このアルゴリズムをお仕事で書いたって本当ですか!?

495名無しさん:2019/04/28(日) 05:21:08
101ケタ目にデータ入力しちゃらめええええ

496名無しさん:2019/04/28(日) 05:28:21
朝だよー

497名無しさん:2019/04/28(日) 05:29:26
おでのクソコード貼って寝てええ?

498名無しさん:2019/04/28(日) 05:30:28
こっちも修正できたよー

499名無しさん:2019/04/28(日) 05:31:00
さっきバグ指摘された者です

500名無しさん:2019/04/28(日) 05:35:37
特殊なところはなにもないよ

501名無しさん:2019/04/28(日) 05:36:31
とても規則的だよ

502名無しさん:2019/04/28(日) 05:36:38
あってるかわからん
https://gist.github.com/ryuzensan/9e550838756f10f26a64b1c36448095f

503名無しさん:2019/04/28(日) 05:46:07
A〜Zのかわりに1〜9の数字で考えてみるといいかもしれない

504名無しさん:2019/04/28(日) 05:47:13
"1"=1
"2"=2
:
"9"=9
"11"=10

505名無しさん:2019/04/28(日) 06:01:36
一 = 1
二 = 2

九 = 9
十 = 10
一一 = 11

506名無しさん:2019/04/28(日) 06:04:01
十十=110

507名無しさん:2019/04/28(日) 06:11:04
十「繰り上がりたくないでござる」

508名無しさん:2019/04/28(日) 06:19:45
702 とかでバグらないようにするのが難しいね

509名無しさん:2019/04/28(日) 06:23:00
わかったところで答えをちゃちゃっと作ろうず

510名無しさん:2019/04/28(日) 06:26:29
また変なことになってきた

511名無しさん:2019/04/28(日) 06:28:01
数学のお話
ある4桁の整数があるとする、その整数は
ax1000+bx100+cx10+dと表せる、つまり
ax10^3+bx10^2+cx10^1+dx10^0
これは各桁が進数(10)の桁乗の積なので26進数では26^n(桁数)になる




掲示板管理者へ連絡 無料レンタル掲示板