题目内容:
将n美分转换成25、10、5和1美分的硬币总共有多少种转换方法?
运行结果如下:
25
13
如果n不在0~99之间,输出提示信息“the money is invalid!”
运行结果如下:
101
the money is invalid!
输入格式:
整数,表示美分数
输入可能不是[0,99]之间的整数。输入不在该区间时,输出为“the money is invalid!”。
输出格式:
转换方法数或者提示信息“the money is invalid!”(不带引号啊,单词间只有一个空格)
输入样例:
25
输出样例:
13
时间限制:2000ms内存限制:64000kb
题目解析
按顺序判断每一种情况
选择符合要求的
C++
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,flag=0;
cin>>n;
if(n>99||n<0)
{
cout << "the money is invalid!" << endl;
exit(0);
}
for(int i=0; i<4; i++)
{
for(int j=0; j<11; j++)
{
for(int k=0; k<20; k++)
{
for(int a=0; a<100; a++)
{
if(25*i+10*j+5*k+a==n)
flag++;
}
}
}
}
cout << flag << endl;
return 0;
}