問題はこちら
No.542 1円玉と5円玉 - yukicoder
5*b+4円以下の範囲については1円玉を5枚以上使うことなく作れるので、その範囲については2重ループ
それ以上は5円玉を全て使った上で1円玉で調整する
main(){ int a,b; scanf("%d%d",&a,&b); for(int i=0;i<=b;i++)for(int j=0;j<=4&&j<=a;j++){ if(i==0&&j==0)continue; printf("%d\n",5*i+j); } for(int j=5;j<=a;j++)printf("%d\n",5*b+j); }
まあそんなことしなくても、金額ごとに作れるかチェックすれば単純なループで書ける
作れる金額の最大は5*b+a円。これ以下の範囲については、i%5>aとなるようなi円は作れず、それ以外はすべて作れる。
i;main(a,b){for(scanf("%d%d",&a,&b);i++<5*b+a;i%5>a||printf("%d\n",i));}
72B