换硬币c++怎么写

我是一名大学生,在学习c语言。大家看到有不对的欢迎指出,谢谢~

换硬币。将一比零前(大于8分,小于1元,精确到分)换成5分、2分和1分的硬币,每种硬币至少有一枚。输入金额,问有几种焕发?针对每一种换法,输出各种面额硬币的数量和硬币的总数量。试写相应程序。

我有两个程序,虽然都差不多,但还是觉得第二种挺新奇的,嘿嘿。

第一种

#include<stdio.h>
int main(){
	int i,j,k,money,n;   //i表示1分,j表示2分,k表示5分
	printf("请输入金额:");
	scanf("%d",&money);
	for(i=1;i<=money;i++){
		for(j=1;j<=money-i;j++){       //-i可以省略 
			for(k=1;k<=money-i-j;k++){      //-i-k可以省略
				if(i+j*2+k*5==money){
					printf("i=%d,j=%d,k=%d\n",i,j,k);
					n++;
				}
			}
		}
	}
	printf("一共有%d种换法。",n);
	return 0;
} 

第二种

#include<stdio.h>
int main(){
	int i,j,k,money,n;
	printf("请输入金额:");
	scanf("%d",&money);
	for(i=1;i<=money;i++){
		for(j=2;j<=money;j+=2){
			for(k=5;k<=money;k+=5){      //没想到j直接加2居然可以
				if(i+j+k==money){
					printf("i=%d,j=%d,k=%d\n",i,j,k);
					n++;
				}
			}
		}
	}
	printf("一共有%d种换法。",n);
	return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值