当前位置: > 财经>正文

C语言编程题将100元钱兑换成1元,5元和10元的零钱,请用穷举法编程计算共有几种兑换方法,每种方法各兑换多少张纸币。 如何把黄金换成钱币呢

2023-08-17 14:22:38 互联网 未知 财经

C语言编程题将100元钱兑换成1元,5元和10元的零钱,请用穷举法编程计算共有几种兑换方法,每种方法各兑换多少张纸币。

这两天正在做C语言的练习题,突然看到了这个问题,本来已经做完了想上网搜一下竟然发现没有几个很好答案,那就我来写一个吧。(主要是比我猛的人也不屑于写这个了,狗头)、

思路解析: 首先要区分的一个概念就是钱数和张数,这个问题我只能说我们心里都明白可是不好用计算机来表达。既然这样那就多设几个变量便于看清楚。理清思路100元换成1元,5元,10元的零钱,最容易换的就是10元。因为10是1,5,10的最小公倍数。这么做总会为后边较小的数留出空间来计算其他值。用100去除(我分不清除和除以总之就是100/10)这样就能得到最多换10张10元,0张1元和5元。所以最多10张,如果9张10元呢,这时候定义变量1m_10 = a - 10 * n_10;for (n_5 = 1; n_5 m_1 = m_5 * 1;n_1 = m_1;}if(n_1 != 0){sum++;printf(" %d %d %d ", n_1, n_5, n_10);}}}printf("共%d种 ", sum);}

说明一下:

复合语句m_1那两行纯属是为了增加可读性,完全可以直接赋值而且其中的金额变量也完全可以去掉直接替换成相应的赋值语句放在变量名处即可。if条件是为了保证每个面额的纸币都大于0,没有这个要求可以不加。另外可能有其他要求,按照要求调整语句即可。另外,一开始容易犯的错误就是第二次循环的条件没有考虑到已经换出了10元的面额通常会直接写成1

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。