C言語_練習問題4-5コイン交換
4641 ワード
練習問題4-5コイン交換(20点)
小銭を5点、2点、1点の硬貨に両替するには、硬貨ごとに少なくとも1枚が必要ですが、いくつかの異なる両替方法がありますか?
入力フォーマット:1行に両替する小銭の金額x∈(8100)を入力します.
出力フォーマット:5点、2点、1点硬貨の数の順に大きい順から小さい順に、各種の交換法を出力することが要求される.各行は「fen 5:5分硬貨数、fen 2:2分硬貨数、fen 1:1分硬貨数、total:硬貨総数」というフォーマットで出力されます.最後の行は「count=換法個数」を出力します.
入力サンプル:13出力サンプル:fen 5:2,fen 2:1,fen 1:1,total:4 fen 5:1,fen 2:3,fen 1:2,total:6 fen 5:1,fen 2:2,fen 1:4,total:7 fen 5:1,fen 2:1,fen 1:6,total:8 count=4#3回forループシートを用いてすべての可能な状況を挙げ,ifで加算がXに等しい場合をフィルタリングする
小銭を5点、2点、1点の硬貨に両替するには、硬貨ごとに少なくとも1枚が必要ですが、いくつかの異なる両替方法がありますか?
入力フォーマット:1行に両替する小銭の金額x∈(8100)を入力します.
出力フォーマット:5点、2点、1点硬貨の数の順に大きい順から小さい順に、各種の交換法を出力することが要求される.各行は「fen 5:5分硬貨数、fen 2:2分硬貨数、fen 1:1分硬貨数、total:硬貨総数」というフォーマットで出力されます.最後の行は「count=換法個数」を出力します.
入力サンプル:13出力サンプル:fen 5:2,fen 2:1,fen 1:1,total:4 fen 5:1,fen 2:3,fen 1:2,total:6 fen 5:1,fen 2:2,fen 1:4,total:7 fen 5:1,fen 2:1,fen 1:6,total:8 count=4#3回forループシートを用いてすべての可能な状況を挙げ,ifで加算がXに等しい場合をフィルタリングする
#include
int main()
{
int x;
int count = 0;
scanf("%d",&x);
for(int k = x/5;k>0;k--){//
for(int m = x/2;m>0;m--){//
for(int j = x;j>0;j--){// 1
if(5*k + 2*m + j == x){// k,m,j
printf("fen5:%d, fen2:%d, fen1:%d, total:%d
",k,m,j,k+m+j);
count++;
}
}
}
}
printf("count = %d",count);
return 0;
}