问题:如果将整钱换成零钱,那么,一元钱可兑换成一角,两角或五角,问有多少种兑换方案。
问题分析:我们首先考虑,一元钱如果全兑换成一角,那么可以兑换10 张,全部兑换成两角,可以兑换5张,如果全部兑换成五角可以兑换成2张,我们可以定义变量i,j,k 分别表示全部兑换成一角,两角或者五角对应的数目,利用for循环嵌套,使用穷举法将所有在取值范围内的数全部组合一次,凡是满足 (i + j * 2 + k * 5) = 10,这一条件的,则将其输出。
源代码:
#include<stdio.h> int main() { int i, j, k; for (i = 0; i <= 10; i++) //i为一角钱兑换个数,范围为0-10 { for (j = 0; j <= 5; j++) //j为2角钱兑换个数,范围为0-5 { for (k = 0; k <= 2; k++) //k为5角钱兑换个数,范围为0-2 { if (i + 2 * j + 5 * k == 10) //兑换和为10角 { printf("1元钱可兑换为 :%d个一角,%d个2角,%d个5角\n", i, j, k); //输出兑换方案 printf("\n"); } } } } return 0; }