プログラムの実行結果は以下の通り。
2年目の友達は 20 人,5 年後に 100 人 2 年後 : 20 人 3 年後 : 40 人 4 年後 : 60 人 5 年後 : 100 人
プログラムのソースは以下の通り。
#include "puzutl.h" YesNo sumfriend( int s0, int s1, int s2, int n) { int s = s1 + s2; if( s > 100) return NO; if( s == 100) { ps( "2年目の友達は %d 人,%d 年後に 100 人\n", s0, n); // 一応検算結果を出力する。 int sum = s0; int pre1 = 0, pre2 = s0; for( int i=2; i<= n; i++) { sum = pre1 + pre2; ps( "%d 年後 : %d 人\n", i, sum); pre1 = pre2; pre2 = sum; } return YES; } return sumfriend( s0, s2, s, n+1); } int main( int argc, cstring argv[]) { for( int i=1; i< 100; i++) { if( sumfriend( i, 0, i, 2)) break; } return 0; }