C语言 换分币 用一百元人民币换成1元 5元和10元 共有多少种兑换方法

来自:    更新日期:早些时候
C语言,程序设计。用一百元人民币兑换成1元、5元和10元币,共有多少种不同的兑换方法。才用循环来做。~

//这类题都是把每一种组合都试过得出的。。
//请采纳呦
#include
main()
{

int x, y, z;
int n = 0;

for(x=0;x<=100;x++)
{
for(y=0;y<=20;y++)
{
for(z=0;z<=10;z++)
{
if(1*x+5*y+10*z == 100)
{
printf("%d张一元, %d张五元, %d张十元
",x, y, z);
n++;
}

}
}
}
printf("一共%d中组合
",n);

}


#include

int main() {
int c = 0;
for (int s = 1; s <= 9; s++)
for (int w = 1; w <= 17; w++)
for (int y = 1; y <= 50 - s - w; y++)
if (10 * s + w * 5 + y == 100 && s + w + y == 50) {
c++;
printf("十元%2d张 五元%2d张 一元%2d张
", s, w, y);

}
printf("共有%d种
", c);
return 0;
}

你好,如上所说,一共有361种兑换方法,可以得出{5C[1],C[1] + 2C[2],20 - C[1] -C[2]}方程,只需要保证都大于0就行。
1、遇到这种题目,我们首先要区分的概念是钱数和张数。这个问题我可以说大家伙都是明白的,但是用计算机来表达并不容易,是很有难度的。所以,在这种情况下,我们可以设置更多变量以使其易于查看,接着清空你的思绪。将100元换成1元、5元和10元。最简单的零钱是10元。因为 10 是 1、5、10 的最小公倍数。这总是为较小的数字留下空间来计算其他值。
2、然后可以用100删除,简而言之,无法清除并除以 100 / 10。这样10元10件、1元0件、5元最多可以获得。因此,最多为 10 件。如果9块是10元,此时定义变量1<=I<=10个周期就可以了。第一次循环后我们换掉一个10元,剩下的90元用来除5(90/5)。最多18块5元。因此,最多有 18 个。如果有17个,那么定义变量1 < = J < = 18。我们在嵌套循环的第一个循环中换出一个五元,那么剩下的五元和十元不言而喻,而剩下的1元不需要这样分析,因为1元的价值等于它的数量,即剩下的1元都是1元。
3、以下就是这道题的代码
#include "stdio.h"
#include "math.h"
main()
{
printf("共有%d种不同的兑换方案",fun (int n))
}
fun(int m)
{ int i;
for(i=0;i<=10;i++)
{int j;
for(j=0;j<=20;j++)
{int k;
for(k=0;k<=100;k++)
{
if(10i+5j+k==100) m+=1
}
}
if(i==10) return m
}
}
程序源码如下:
循环嵌套循环次数少的尽量在外!
#include
#include
using namespace std;
int main()
{
int count = 0;//换法数量
int temp;
int m = 100;//总钱数
int a = 1;//1元面值
int b = 2;//2元面值
int c = 5;//5元面值
//a, b, c的值还可以是10,20,50
for (int i = 0; i <= m / b; ++i)//++i的意义在于100必须换成三类纸币,需要大于等于1张
{
for (int j = 0; j <= m / c; ++j) //5元
{
temp = m - (b * i + c * j);
//只要2元和5元的总和加起来不大于100,剩下的都换1元
if (temp >= 0 && temp % a == 0)
{
++count;//换法种数+1
}
}
}
cout << "换法有" << count << "种
";//输出换法种数
system("pause");
return 0;
}



#include<stdio.h>

int main(void)
{
    int n = 0;
    int c1, c5, c10;

    for(c1=0; c1<=100; c1++)
    {
        for(c5=0; c5*5+c1*1<=100; c5++)
        {
            for(c10=0; c10*10+c5*5+c1*1<=100; c10++)
            {
                if(c1*1+c5*5+c10*10 == 100)
                {
                    n++;
                    printf("1:%d, 5:%d, 10:%d
", c1, c5, c10);
                }
            }
        }
    }

    printf("%d
", n);

    return 0;
}



C语言 换分币 用一百元人民币换成1元 5元和10元 共有多少种兑换方法视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网