数学?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
マルチネス

数学?

#1

投稿記事 by マルチネス » 16年前

こんにちは、いつもお世話になっています。

今回の質問は、文字列の"1234"を整数値に変換したいのですが、
1234
= 1 * 1000 + 2 * 100 + 3 * 10 + 4
=(((0 + 1) * 10 + 2) * 10 + 3) * 10 + 4 ----①

この①の展開の仕方が分かりません。
とても、馬鹿らしい質問とは思うのですが、よろしくお願いします。

ねこ

Re:数学?

#2

投稿記事 by ねこ » 16年前

char cTemp[64] = "1234"
int iTemp = atoi( cTemp );
これじゃ駄目なの?
1文字ずつ解析して変換せよ、とか条件あるのかな。

Blue

Re:数学?

#3

投稿記事 by Blue » 16年前

"1234" を先頭から一文字ずつ見る。

1文字目
'1' → 数値に変換 → 1 ・・・①

2文字目
'2' → 数値に変換 → 2
→ ①の結果と合わせる → ひと桁上なので①の結果を10倍して足す
→ ① * 10 + 2・・・②

3文字目
'3' → 数値に変換 → 3
→ ②の結果と合わせる → ひと桁上なので②の結果を10倍して足す
→ ② * 10 + 3・・・③

4文字目
'4' → 数値に変換 → 4
→ ③の結果と合わせる → ひと桁上なので③の結果を10倍して足す
→ ③ * 10 + 4・・・④

④を展開すると
((1 * 10 + 2) * 10 + 3) * 10 + 4
となる。

①が(0 + 1)になるのは
> → Xの結果と合わせる → ひと桁上なのでXの結果を10倍して足す
の X が一番最初なので 0 ということにすると
①は (0 * 10 + 1) = (0 + 1) となる。

non

Re:数学?

#4

投稿記事 by non » 16年前

昔、同じような投稿がありました。
参考になれば
ttp://www.play21.jp/board/formz.cgi?action=res&resno=28948&page=&lognum=90&id=dixq&rln=29064

SCI

Re:数学?

#5

投稿記事 by SCI » 16年前

ホーナー法による多項式計算の応用ですね。

box

Re:数学?

#6

投稿記事 by box » 16年前

> 1234
> = 1 * 1000 + 2 * 100 + 3 * 10 + 4
> =(((0 + 1) * 10 + 2) * 10 + 3) * 10 + 4 ----①

1234
= 1230 + 4
= 123 * 10 + 4
= (120 + 3) * 10 + 4
= (12 * 10 + 3) * 10 + 4
= ((10 + 2) * 10 + 3) * 10 + 4
= ((1 * 10 + 2) * 10 + 3) * 10 + 4
= (((0 + 1) * 10 + 2) * 10 + 3) * 10 + 4

これで理解できますか?

閉鎖

“C言語何でも質問掲示板” へ戻る