问题的提出如下:1分2分5分的硬币,组成1角,共有多少种组合,如果是组成1块,又有多少种组合.
这个问题看似很简单,答案为10种.但如果要真正去算,或者写程序来实现.想必大多数的人都会使用3层for循环来实现.即分别令i=0(表示1 分)j=0(表示2分)k=0(表示5分),然后循环条件为3者之和小于10得出的结果为三者之和大于10.即实现算术 x+2y+5z=10,然后求xyz的组合.
然而,问题在于提出的问题并没有问具体的组合方式,而是只问了究竟有多少种,那么如果再使用这种算法就有点得不偿失了.
设1分个数为x,2分个数为y,5分的硬币个数为z,则1*x+2*y+5*z=10;
z x
总共个数为6+3+1=10.
某个奇数m以内的奇数个数也可以表示为(m+1)/2