スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

数字に3が含まれているかのチェック

世界のナベアツにJavaで挑戦のソースに
数字に3が含まれている場合のチェックを検証しました。

まずは一番簡単な方法
数字を文字列に変換して3があるかチェックするメソッドを作成


/**
* 渡された数字に指定した数字が含まれるかチェックする
* @param num チェック対象の数字
* @param checknum チェックする数字
* @return
*/
private boolean isIncludeNum(int num,int checknum){

 // 数値を調べる
 int len = String.valueOf(num).indexOf( String.valueOf(checknum));

 if (len >=0){
  return true;
 }else{
  return false;
 }
}



String.valueOfメソッドで数字をString型に変換してindexOfメソッドで数字の位置を調べて
0以上だったらTrue、0より小さいならfalseを返す。

このメソッドを前回のdoCountメソッドに追加する。


 /**
 * 数字をカウントする
 *
 */
 public void doCount(){
  // 1から40までループ
  for (int i=0;i<40;i++){

   // 3の倍数かチェックする
   if ((i+1)%3==0){
    // 3の倍数
    System.out.println(parseNihonYomi(i+1,ahokazu));
   }else if (isIncludeNum(i+1,3){
    // 3が含まれてる
    System.out.println(parseNihonYomi(i+1,ahokazu));
   
   }else{
    // 3の倍数ではない
    System.out.println(parseNihonYomi(i+1,kazu));
   }
  }
 }



実行結果は


1から40まで数えて3の倍数と3が含まれる時にだけアホになります。
いち

さぁぁん
よん

ろぉくぅ
なな
はち
きゅう~
じゅう
じゅういち
じゅぅぅうにぃ
じゅぅぅうさぁぁん
じゅうよん
じゅぅぅうごぅ
じゅうろく
じゅうなな
じゅぅぅうはぁちぃぃ
じゅうきゅう
にじゅう
にぃじゅぅぅういぃぃ~ち
にじゅうに
にぃじゅぅぅうさぁぁん
にぃじゅぅぅうよぉぉん
にじゅうご
にじゅうろく
にぃじゅぅぅうなぁなぁぁ
にじゅうはち
にじゅうきゅう
さぁぁんじゅぅぅう
さぁぁんじゅぅぅういぃぃ~ち
さぁぁんじゅぅぅうにぃ
さぁぁんじゅぅぅうさぁぁん
さぁぁんじゅぅぅうよぉぉん
さぁぁんじゅぅぅうごぅ
さぁぁんじゅぅぅうろぉくぅ
さぁぁんじゅぅぅうなぁなぁぁ
さぁぁんじゅぅぅうはぁちぃぃ
さぁぁんじゅぅぅうきゅう~
よんじゅう
オモロー!!



簡単な方法だけど、なんかこうカッコよくない・・・
数学的にやる方法を考えてたらこうなった。


private boolean isIncludeNum(int num,int checknum){

 if ((int)Math.floor(num/10)== 0){
  return false;
 }else if ((int)Math.floor(num/10)== checknum){
  return true;
 }else{
  return isIncludeNum((int)Math.floor(num/10),checknum);
 }
}



単純に数字を10で割っていって割った数字の結果が3であればOKってだけ
さらに再帰を使って10の位、100の位、1000の位と位ごとに計算していきます。

これで一応ナベアツ完成。

けど、3の倍数と3が含まれる数字でしかアホにならず
そのほかのパターンを入れる場合は、毎回doCountメソッドに条件を追加しないといけないし
パターン毎のメソッドも新規で追加しないといけないので
保守性が低いです。

つーことで次回はネタのパターンをクラス化して保守性を上げてみます。
スポンサーサイト

コメントの投稿

非公開コメント

承認待ちコメント

このコメントは管理者の承認待ちです
プロフィール

DJコーク

Author:DJコーク
地方で細々とSEまがいの仕事をしています。

楽天ブック
最近の記事
Feed
月別アーカイブ
スポンサードリンク
グラビス|gravis ノーマディック|nomadic ヴィブラム|vibram ロープロ|lowepro
MoMA STORE
MoMAstore
MoMAstore
MoMAstore
MoMAstore
MoMAstore
リンク
カテゴリ
サイト
ランキング
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。