c语言实践 用1角 2角 5角 凑成10元钱的方法

/*
	用1角,2角,5角凑出10元钱,有几种办法。
	
	也就是0.1a+0.2b+0.3c=10,化简一下就是
	a=100-2b-3c
	因为a的范围是0到100,所以弄一个循环
	把a的值从0尝试到100,当a等于0的时候,b的值也是0到100,
	然后a b都确定的时候c就确定了。

	*/


	int a = 0;
	int b = 0;
	int c = 0;
	int count = 0;;

	while (a < 101)//a的值大于0小于100
	{
		b = 0;//当a每循环一次,b进行一次大循环,每次大循环b都是从0开始。
		while (b < 101)
		{
			if ((100-a-2*b)%3==0&&(100-a-2*b)>0)//c的值只有是整数而且是正数的情况才可以的。
			{
				count++;
				printf("a=%d b=%d c=%d \n", a, b, (100 - a - 2*b)/3);
				
			}

			b++;
		}
		a++;
	}

	printf("%d solutions",count);

 

 

我这个其实是有种数学的感觉,没有写程序的感觉,哈哈。

 

 

update:2018.9.29

int main(void)
{

    int a;
    int b;
    int c;
    int count = 0;
    for (a = 1; a <= 100; a++)
    {
        for (b = 1; b <=50; b++)
        {
            for (c = 1; c <=20 ; c++)
            {
                if (a + 2*b + 5*c == 100)
                {
                    count++;
                }
            }
        }
    }
    printf("%d",count);
    return 1;
}

感觉这种好理解一点。

 

posted @ 2018-09-10 23:48  eatwhat  阅读(1557)  评论(0)    收藏  举报