C++プログラミングボーナス:出納員が最小限の紙幣で十分なボーナスを支給するのを助けるプログラムを作成してください.
10793 ワード
ある企業は年末に従業員の業績によってボーナスを支給し、既知の資金金額は数百元しかない.出納員が最小限の紙幣で十分なボーナスを支給するのを助けるプログラムを書いてください.紙幣の額面は100元、50元、20元、10元、5元、2元、1元であることが知られている.
フォーマット金額の入力(元単位の整数)
出力フォーマットは、紙幣の額面が大きい順に各種紙幣の枚数を出力する(出力サンプルを参照)
入力サンプル
出力サンプル
方法1:
方法を書いた後、ループで解決すれば、コードがもっと簡単になることに気づきました.
方法2
フォーマット金額の入力(元単位の整数)
出力フォーマットは、紙幣の額面が大きい順に各種紙幣の枚数を出力する(出力サンプルを参照)
入力サンプル
582
出力サンプル
100 : 5
50 : 1
20 : 1
10 : 1
5 : 0
2 : 1
1 : 0
方法1:
#include
using namespace std;
int main()
{
int m,m100,m50,m20,m10,m5,m2,m1;
cin>>m;
m100 = m/100;
m = m%100;
m50 = m/50;
m = m%50;
m20 = m/20;
m = m%20;
m10 = m/10;
m = m%10;
m5 = m/5;
m = m%5;
m2 = m/2;
m1 = m%2;
cout << "100 : " << m100 << " " << endl;
cout << " 50 : " <<m50 << " " << endl;
cout << " 20 : " <<m20 << " " << endl;
cout << " 10 : " <<m10 << " " << endl;
cout << " 5 : " <<m5 << " " << endl;
cout << " 2 : " <<m2 << " " << endl;
cout << " 1 : " <<m1 << " " << endl;
return 0;
}
方法を書いた後、ループで解決すれば、コードがもっと簡単になることに気づきました.
方法2
#include
#include
using namespace std;
int main()
{
int a[7] = {100,50,20,10,5,2,1},m,i,x,n;
cin>>m;
for (i=0 ; i<7 ; i++)
{
x = m / a[i] ;
m = m % a[i] ;
n = log10(a[i]*10);// a[i]
for (; n < 3 ; n++)//
cout << " ";
cout << a[i] << " : " << x << " " << endl;
}
return 0;
}