2013ブルーブリッジカップ【シミュレーション試合】コインプラン


コイン案には50枚のコインがあり、4種類のタイプが含まれている可能性があります.1元、5角、1角、5分です.既知の総価値は20元です.各種の硬貨の数量を求めます.例えば、2,34,6,8は答えです.2,33,15,0はもう一つの可能な答えであり、明らかに答えは唯一ではない.あなたの任務は、このような異なる案が全部でいくつあるか(すでに与えられた2つを含む)を確定することです.この数字を直接提出し、余分な内容を提出しないでください.
 
考え方:何も考えないで、試合の時間はきつくて、しかも答えを出すだけでいいので、直接暴力的に検索します!小技巧:5角、1角、5分を浮動小数点型データ(double)に分化すると計算ミスが発生しやすく、すべての数に100、20元を乗じて2000元、1元、5角、1角、5分を100元、50元、10元、5元になります.整形計算エラー率が大幅に低下
ACコード:
#include<stdio.h>
int b[1000][4];
int main()
{
    int i,j,x,p,k=0;
    int n=2000;
    for(i=0;i<=50;i++)
    for(j=0;j<=50;j++)
    for(x=0;x<=50;x++)
    for(p=0;p<=50;p++)
    {
      if(i*100+j*50+x*10+p*5==n&&i+j+x+p==50)
      {
         b[k][0]=i;b[k][1]=j;b[k][2]=x;b[k][3]=p;
         printf("%d %d %d %d
",i,j,x,p); k++; } } for(i=0;i<k;i++) { for(j=0;j<4;j++) printf("%d ",b[i][j]); puts(""); } printf(" :%d
",k); while(1); return 0; }

 
答え:50種類
すべての場合0 38 4 22 14 6 30 0 14 7 21 8 14 8 12 16 14 9 3 24 15 4 29 2 15 5 20 10 15 6 11 18 15 7 2 26 16 2 28 4 16 3 19 12 16 4 10 20 16 5 1 28 17 0 27 6 17 1 18 14 17 2 9 22 17 3 0 30 18 0 8 24 0 38 8 4 1 36 7 6 2 33 15 0 2 34 6 8 3 31 14 2 3 32 5 10 4 29 13 4 4 30 4 12 5 27 12 6 5 28 3 14 6 24 20 0 6 25 11 8 6 26 2 16 7 22 19 2 7 23 10 10 7 24 1 18 8 20 18 4 8 21 9 12 8 22 0 20 9 18 17 6 9 19 8 14 10 15 25 0 10 16 16 8 10 17 7 16 11 13 24 2 11 14 15 10 11 15 6 18 12 11 23 4 12 12 14 12 12 13 5 20 13 9 22 6 13 10 13 14 13 11 4 22 14 6 30 0 14 7 21 8 14 8 12 16 14 9 3 24 15 4 29 2 15 5 20 10 15 6 11 18 15 7 2 26 16 2 28 4 16 3 19 12 16 4 10 20 16 5 1 28 17 0 27 6 17 1 18 14 17 2 9 22 17 3 0 30 18 0 8 24
合計50グループ