tk555 diary

プログラミング、もしくはそれ以外のこと書きます。

覚書1

虚無埋めしてた時他人のコード見てたら気づいたやつ

 

10進数で各桁の数に何らかの処理するとき、例えば各桁の和を求めるときとか

int n=nn,String ns=Integer.toString(n)として

  1. while(nn>0)でint x=nn%10;nn/=10
  2. for(char c:ns.toCharArray())でint x=c-'0'かCharacter.getNumericValue(c)

の二通り方法がある。

 

個人的に、というか確実に後者の方がバグの入る余地がなくて良さそうだがこれ系の問題だと以前までは前者の方法しか思いつかなかった

そもそも後者の方が最初に思いつきやすそうなのに前者しか発想出来なかったのは謎

 

 

多分初心者プログラマ向けの何かに再帰関数として前者の方法使ってて、それをそのままの印象で覚えてたのかも(要検証)