ページ 11

[雑談]ある整数から下x桁の整数を返す関数作成について

Posted: 2008年12月28日(日) 12:24
by kazuoni
お邪魔します。

題名の通りある整数から下x桁の整数を返す関数作成についてなのですが、
どのようにやるのが(効率が)いいか悩んでいます。
関数作成においての条件・詳細は以下のとおりです。

引数:(int)ある整数 , (int)x桁
戻り値:(int)x桁の整数

例えばこの関数名をfuncとすると、

func(12345 , 3)

の戻り値は345です。

自分はこの関数の中でsprintfでまず数値を文字列化し、
残りの引数を使って返したい値の文字列をatoiで整数の戻す
というようにやっています。

特に質問というわけではないですが、
皆さんだったらどのようにこの関数を実現しますか?

よろしくお願いします。

(雑談アイコン消しちゃったんですね^^;)

Re:[雑談]ある整数から下x桁の整数を返す関数作成について

Posted: 2008年12月28日(日) 12:35
by 組木紙織
そうたいした事ではないのですが、負の数を渡したときはうまく動いていますか。

私だったら余りを使うと思います。

Re:[雑談]ある整数から下x桁の整数を返す関数作成について

Posted: 2008年12月28日(日) 13:01
by kazuoni
記述し忘れました。。
今回は負は考えていません。
確かにsprintfは「-」はご法度ですね。
可搬性が低くなってしまいますね。。

・・・
なんで余りが思い浮かばなかったんでしょうか・・・w
早速実装してきます。

Re:[雑談]ある整数から下x桁の整数を返す関数作成について

Posted: 2008年12月28日(日) 13:08
by 初級者
(第1引数)%(10の(第2引数)乗)

Re:[雑談]ある整数から下x桁の整数を返す関数作成について

Posted: 2008年12月28日(日) 13:12
by SCI
ちなみに、ある桁の数字のみを取り出すというようなことも同様にできます。
int n = 1234;
n %= 100;
n /= 10;
とすると、nには3が入ります。
なぜ「100」や「10」が出てくるのかを考えてみるといいかも知れませんね。

Re:[雑談]ある整数から下x桁の整数を返す関数作成について

Posted: 2008年12月28日(日) 15:32
by kazuoni
簡単な質問申し訳ありませんでした。。
初級者さん、SCIさんご回答ありがとうございました^^

またよろしくお願いします。