希望帮助c语言入门选手

整钱换零钱问题。把n元兑换成1分,2分,5分的硬币,共有多少种兑换方法,并列出所有可能性?(用穷举法求解)

#include<stdio.h>
int main()
{
int i,j,k;
int n;
scanf("%d",&n);
int sum=0;
for(i=1;i<n*1000;i++)
{
    for(j=1;j<n*500;j++){
        for(k=1;k<n*200;k++){
            if((i+2*j+5*k)==n*1000){
                sum++;
                printf("%d个一分,%d个两分,%d个五分\n",i,j,k);
            }
        }
    }
}
printf("共有%d种兑换方法\n",sum);
return 0;
}

温馨提示:下面代码a默认等于1,是1元进行多种硬币兑换,然后列举出可能的兑换,如果需要自定义,只需要解除//scanf("%d",&a);注释即可

#include <stdio.h>
int main()
{
    int a=1;
    //scanf("%d",&a);
    int n=a*100;
    int i,j;
    int sum = 0;
    for (i = 0; i <= n/20 ; i++) {
        for (j = 0; j <= n - i*5; j++) {
            sum++;
            if(n-5*i - 2*j>=0)
            printf("%d 个5分,%d个2分,%d个1分\n", i,j, n-5*i - 2*j);
        }
    }
    printf("一共%d种方法\n", sum);
    getchar();
    return 0;
}

测试结果如下

img

#include"stdio.h"
int main()
{
    int n,count=0,x,y,z;
    scanf("%d",&n);
    n = n*100;
    for(z=0;z<=n/5;z++)
        for(y=0;y<=n/2;y++)
            for(x=0;x<=n;x++)
                if(x+2*y+5*z==n)
                {
                    printf("1*%d+2*%d+5*%d=%d\n",x,y,z,n);
                    count++;
                }
    printf("count=%d\n",count);
    return 0;
}

#include <iostream>

using namespace std;
int main()
{
    int money;
    int sum = 0;             //换算的种数
    int a = 1, b = 2, c = 5; //a,b,c分别表示1分,2分,5分
    cout << "输入金额:";
    cin >> money;
    /*ci,bi,ai分别表示5分,2分,1分的张数*/
    for (int ci = 0; ci <= money / c; ci++)
        for (int bi = 0; bi <= (money - ci * 5) / b; bi++)
            for (int ai = 100; ai >= 0; ai--)
            {
                if (100 == ci * 5 + bi * 2 + ai)
                {
                    sum++;
                    cout << "5分(张):" << ci << " 2分(张):" << bi << " 1分(张):" << ai << endl;
                }
            }
    cout << "一共有" << sum << "种换法" << endl;
    return 0;
}