硬币分法

硬币分法

1分2分5分的硬币三种,组合成1元,共有多少种组合。

分析:1元=10角=100分。若只有一种情况则可分析为:

① 若只要1分合成1元,则需要100个1分;

②若只要2分合成1元,则需要50个2分;

③若只要5分合成1元,则需要20个5分。

但题目要求是三种,那么就是1分、2分、5分都至少也要一个。

 

代码如下:

   /**
	 * <p>
	 * Description:[一块钱 1分 2分 5分 有多少种分法]
	 * </p>
	 * 
	 * Created by [Administrator] [2019年3月15日]
	 * Midified by [修改人] [修改时间]
	 * @param args
	 */
	public static void main(String[] args) {
		int i,j,k,s,n=0;/*  i,j,k 分别代表 一分硬币、二分硬币和五分硬币*/ 
		
		System.out.println("一块钱 1分 2分 5分组合,方法如下:");
		for(i=1;i<100;i++) // 若全是1则需要100个1相加
	 		for(j=1;j<50;j++) // 若全是2则需要50个2相加
	 			for(k=1;k<20;k++) // 若全是5则需要20个5相加
				{ 
					s=1*i+j*2+k*5; 
	 				if (s==100) { 
	  					++n; 
	  					System.out.println("第"+n+"种组合:"+i+"个1分 + "+j+"个2分 + "+k+"个5分");
	 				} 
				} 
		System.out.println("共有  "+n+" 种组合。"); 
	}

 

 

c语言:

#include "stdio.h" 
main() 
{ 
	int i,j,k,s,n=0;    /*  i,j,k 分别代表 一分硬币、二分硬币和五分硬币*/ 
 	printf("%5c%5c%5c\n",'1','2','5'); 
 	for(i=1;i<100;i++) 
 		for(j=1;j<50;j++) 
 			for(k=1;k<20;k++) 
			{ 
				s=1*i+j*2+k*5; 
 				if (s==100) 
				{ 
  					printf("%5d%5d%5d\n",i,j,k);
  					++n; 
 				} 
			} 
	printf("The ways is %d\n",n); 
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值