朝日新聞2006年1月6日パズル横丁解答

プログラムの実行結果は以下の通り。

500円玉 3枚
100円玉 2枚
 50円玉 5枚
 10円玉 4枚
  5円玉 3枚
  1円玉 1枚

プログラムのソースは以下の通り。

#include "puzutl.h"

int main( int argc, cstring argv[])
{
  int s500 = 0, s100 = 0, s50 = 0, s10 = 0, s5 = 0, s1 = 0;
  for( int i500=1; i500< 13; i500++) {
    for( int i100=2; i100< 3; i100++) {
      for( int i50=1; i50< 13; i50++) {
        for( int i10=1; i10< 13; i10++) {
          for( int i5=1; i5< 13; i5++) {
            for( int i1=1; i1< 13; i1++) {
              if( i500+i100+i50+i10+i5+i1 == 18 &&
                  i500*500+i100*100+i50*50+i10*10+i5*5+i1*1 == 2006) {
                ps( "500円玉 %d枚\n", i500);
                ps( "100円玉 %d枚\n", i100);
                ps( " 50円玉 %d枚\n", i50);
                ps( " 10円玉 %d枚\n", i10);
                ps( "  5円玉 %d枚\n", i5);
                ps( "  1円玉 %d枚\n", i1);
              }
            }
          }
        }
      }
    }
  }
  return    0;
}