要写出本道题,首先要理解一个面额的纸币能分成多少种情况。
//将一面额为10元倍数的整钱(面额为大于等于10,并小于等于100) //换成1元、2元和5元的零钱组合(每种面值都要有)。 //输入要换的面额(如10元), //输出所有可能的换法数量(如2种)。 //要求按5,2,1从多到少输出 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int o = 1;//一元的面额 int t = 1;//两元的面额 int f = 1;//五元的面额 int count = 0;//统计次数 int sum = 0;//输入面额大小 scanf("%d", &sum); if (sum >= 10 && sum <= 100) { for (o = 1; o <= sum; o++)//把一元放在最外面,意味着一元的是最后考虑的 { for (t = 1; t <= sum; t++) { for (f = 1; f <= sum; f++)//把五元放在最外面,意味着五元的是最后考虑的 { if (sum == o + 2 * t + 5 * f) { printf("%d %d %d\n", f, t, o);//若想按从少到多输出,可将一元纸币放在最里面先考虑 count++; } } } } printf("count=%d", count); } }