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

C++の宿題/HappyNumber」(2008/01/12 (土) 14:50:29) の最新版変更点

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

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

**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; } } } return 0; }
**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; } } } return 0; }

表示オプション

横に並べて表示:
変化行の前後のみ表示: