描述
对于给定的人民币金额n(分),问有多少种方案将其兑换成1分、2分、5分。
输入
输入数据有若干行。每行上有一个正整数表示以分为单位的人民币金额n,对应一种情形。
输出
对于每一种情形,先输出“Case #:”(#为序号,从1起),然后输出n,逗号,结果,换行。
用switch函数分类余数情况
样例输入1
10
100
150
样例输出1
Case 1: 10, 10
Case 2: 100, 541
Case 3: 150, 1186
下为自己编的代码(显示wrong answer)
求各路巨神帮忙解惑指正!
#include <iostream>
using namespace std;
int main(){
int n,k=0;
while(cin>>n){
cout<<"Case "<<++k<<": "<<n<<", ";
int sum,i;
i=n/5;
switch(n%5){
case 4: if(i%2==0){
sum = 5*(i/2)*(i/2)+8*(i/2)+3;
}
else{
sum = 5*(i/2)*(i/2)+13*(i/2)+8;
}
case 3: if(i%2==0){
sum = 5*(i/2)*(i/2)+7*(i/2)+2;
}
else{
sum = 5*(i/2)*(i/2)+12*(i/2)+7;
}
case 2: if(i%2==0){
sum = 5*(i/2)*(i/2)+6*(i/2)+2;
}
else{
sum = 5*(i/2)*(i/2)+11*(i/2)+6;
}
case 1: if(i%2==0){
sum = 5*(i/2)*(i/2)+5*(i/2)+1;
}
else{
sum = 5*(i/2)*(i/2)+10*(i/2)+5;
}
case 0:if(i%2==0){
sum = 5*(i/2)*(i/2)+4*(i/2)+1;
}
else{
sum = 5*(i/2)*(i/2)+9*(i/2)+4;
}
}
cout<<sum<<endl;
getchar();
}
return 0;
}