3704 - C++作业2-5:美分转换问题
时间限制 : 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; }