题目内容:
将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; }