1740 - 换零钱 [1*]
某人想将手中的一张面值 100 元的人民币换成 5 元、 1 元和 0.5 元面值的票子,但要求换正好 100 张,且每种票子至少一张。问:有几种换法?
提示: 用三重循环。想一想如何减少循环的次数。
5 元、 1 元和 0.5 元最多各需要几张。记得要求正好换 100 张,总价值100元。
循环变量代表某个币种的张数。
题目输入
题目输出
输入/输出样例
题目输入
题目输出
C语言解答
#include <stdio.h> int main() { double i,j,z; int count=0; for(i=1;i<97;i++){ for(j=1;j<97;j++){ for(z=1;z<97;z++){ if((5*i+j+0.5*z==100)&&(i+j+z==100)){ count++; } } } } printf("%d",count); return 0; }
C++解答
#include<iostream> using namespace std; int main() { int sum=0; for(int i=1;i<=19;i++) for(int j=1;j<=99;j++) { if(i*5+j+(100-i-j)*0.5==100)sum++; } cout<<sum<<endl; return 0; }