整钱换零钱 循环 方程思想

问题 E: 22-循环-1-整钞换零

#include<stdio.h>
int main()
{
	int n=0;
	
	while(scanf("%d",&n)!=EOF)
	{	
		int cnt=0;
		for(int i=1;i<=(n-3)/5;i++)
		{
			for(int j=1;j<=(n-6)/2;j++)
			{
				for(int k=1;k<=n-7;k++)
				{
					if(5*i+2*j+k==n)cnt++;
				}
			}
		}
		printf("%d\n",cnt);
	}
	return 0;
}
//}(100-5*i)/2
//100-5*i-2*j
for(int i=1;i<=m/5;i++)
		 {
		 	for(int j=1;j<=(100-i*5)/2;j++)
		 	{
		 		for(int k=1;k<=100-i*5-j*2;k++)
		 		{
		 			if(i*5+j*2+k==m)
		 			{
		 				cnt++;
					 }
          }
             }

                }

 法2循环次数更少,更佳。

题目描述

给定任意的人民币的整币m(10、20、50和100元),将其兑换成5元、2元和1元币值(要求三种币值均有),统计兑换的的方法有多少种。

输入

多样例。每个样例输入一行,为任意人民币的整币100,50,20,10中的一个数据。

输出

每一个样例输出一行,包括一个整数,表示兑换的方法有多少种。

样例输入 Copy

50
10

样例输出 Copy

106
2

1、变量在生存周期内声明及初始化

                否则会影响下一次输出

错误代码如下

int n=0;
int cnt=0;
	while(scanf("%d",&n)!=EOF)
	{	
		//第二次输入时cnt不再等于0
		for(int i=1;i<=(n-3)/5;i++)
		{
			for(int j=1;j<=(n-6)/2;j++)
			{
				for(int k=1;k<=n-7;k++)
				{
					if(5*i+2*j+k==n)cnt++;
				}
			}
		}
		printf("%d\n",cnt);
	}

2、方程思想:多种选择用循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值