「C++の宿題/HappyNumber」の編集履歴(バックアップ)一覧はこちら

C++の宿題/HappyNumber」の最新版変更点

追加された行はこの色になります。

削除された行はこの色になります。

 **HappyNumber
 http://pc11.2ch.net/test/read.cgi/tech/1199515728/639
 正整数a以上b以下のHappyNumberを求めるプログラムを作成せよ。
 ただし、関数を使うこと。
 HappyNumberとは、正整数nの各桁の数を2乗し、その合計を求め、
 その合計の各桁の数を2乗し、またその合計を求める計算を繰り返したとき、
 最終的に1となる正整数nのことをいう。
 
 参考:http://pc11.2ch.net/test/read.cgi/tech/1199515728/650
  650 名前:デフォルトの名無しさん[sage] 投稿日:2008/01/12(土) 02:00:19
  これ面白いな。
  最終的には4を含むループにはまるか、1で終わるかのどっちかなんだな。
  証明もできたがはじめて知ったよ。
 
  #include<iostream>
  
  bool IsHappyNumber( int n )
  {
    while( 1 )
    {
      int sum = 0;
      while( n )
      {
        int i = n % 10;
        sum += i * i;
        n /= 10;
      }
      n = sum;
      if( n == 1 ) return true;
      if( n == 4 ) return false;
    }
  }
  
  int main( void )
  {
    int a, b;
    std::cin >> a;
    std::cin >> b;
  
    if( a > 0 )
    {
      for( int i = a; i <= b; ++i )
      {
        if( IsHappyNumber(i) )
-	   {
-	     std::cout << i << std::endl;
-	   }
+       {
+         std::cout << i << std::endl;
+       }
      }
    }
    return 0;
  }





| 新しいページ | 編集 | 差分 | 編集履歴 | ページ名変更 | アップロード | 検索 | ページ一覧 | タグ | RSS | ご利用ガイド | 管理者に問合せ |
@wiki - 無料レンタルウィキサービス | プライバシーポリシー | リンク元 | トラックバック