3704 - C++作业2-5:美分转换问题

通过次数

0

提交次数

0

时间限制 : 2 秒 内存限制 : 32 MB

将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!”

输入/输出样例

输入格式

25

输出格式

13

C语言解答

#include <stdio.h>

int main()
{
	int n;
	int a, b, c ,d;
	int cnt=0;
	scanf("%d",&n);
	if( n<100&&n>=0 ){
		for( a=0; a<=n/25; a++ ){
			for( b=0; b<=n/10; b++ ){
				for( c=0; c<=n/5; c++ ){
					for( d=0; d<=n; d++ ){
						if( 25*a+10*b+5*c+d==n ){
							cnt++;
						}
					}
				}
			}
		}
	}
	if( cnt>0 ){
		printf("%d",cnt);
	}else{
		printf("the money is invalid!");
	}
	
	return 0;
} 

C++解答

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int i,j,k,p;
    int n,count=0;
    cin>>n;
    if(n<0 || n>99)
        cout<<"the money is invalid!"<<endl;
    else
    {
        for(i=0;i<=n/25;i++)
        {
            for(j=0;j<=n/10;j++)
            {
                for(k=0;k<=n/5;k++)
                {
                    for(p=0;p<=n;p++)
                    {
                        if(25*i+10*j+5*k+p==n)
                            count++;
                    }
                }
            }
        }
        cout<<count<<endl;
    }
    return 0;
}