一道C++的题目,请问如何优化这个代码,看着更简洁一点,谢谢~
题目如下:
这是我的代码:
#include<iostream>
using namespace std;
int main()
{
int m,q=0,d=0,n=0,c=0;
cin>>m;
while (m>0){
if(m>=25){
q+=1;
m-=25;
continue;
}
if(m>=10){
d+=1;
m-=10;
continue;
}
if(m>=5){
n+=1;
m-=5;
continue;
}
if(m>=1){
c+=1;
m-=1;
}
}
cout<<"Change: ";
if(q>1) cout<<q<<" Quarters, ";
else cout<<q<<" Quarter, ";
if(d>1) cout<<d<<" Dimes, ";
else cout<<d<<" Dime, ";
if(n>1) cout<<n<<" Nickels, ";
else cout<<n<<" Nickel, ";
if(c>1) cout<<c<<" Cents, ";
else cout<<c<<" Cent";
}
用数组记录数量,以及用数组存储25,10,5,1,这样用循环
#include <iostream>
using namespace std;
#define N 4
int main()
{
char unitname[N][20] = {"Quarters","Dimes","Nickel","Cents"};
int unit[N] = {25,10,5,1};
int num[N] = {0};
int i=0,n;
cin>>n;
for(i=0;i<N;i++)
{
num[i] = n/unit[i];
n = n%unit[i];
}
cout<<"Change: ";
for(i=0;i<N;i++)
{
if(i!=0)
cout<<", ";
cout<<num[i]<<" "<<unitname[i];
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
printf("Change: %d Quarters, %d Dimes, %d Nickel, %d Cents",n/25,n%25/10,(n%25%10)/5,n%25%10%5);
return 0;
}
```