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;
}
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题