MOOC (C++) 3-5美分找钱 将n美分转换成25、10、5和1美分的硬币总共有多少种转换方法?

题目内容:

将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;
}

猜你喜欢

转载自blog.csdn.net/qq_51222650/article/details/114867554