您的位置:首页 > 编程语言

某公司定制培训班笔试最后一题解题思路和解题代码

2007-12-19 12:28 323 查看
题目描述

有3种面额的硬币:1分,2分和5分的。现在有100枚这样的硬币,面额总和是2.47元,求共有多少种可能,且1分,2分和5分的硬币各有多少。

解题思路:

假设1分,2分和5分的硬币个数分别是x,y,z个。

则有:

x + y + z =100

x+2y+5z=247

可得:

X = 3z – 47

Y = 147-4z

又知道

x >= 0

y>=0

z>=0

5z<=247

可得:

16<=z<=36

问题得解。

问题的证明:

用c#代码实现,并输出每种解的值。

using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int num = CaluSovNum();

}

private static int CaluSovNum()

{

int x, y, z;

int num = 0;

for (z = 16; z <= 36; z++)

{

x = 3 * z - 47;

y = 147 - 4 * z;

if (x <0 || y <0 || x + y + z != 100 || x + 2 * y + 5 * z != 247)

{

throw new Exception("Error");

}

num++;

Console.WriteLine("1分钱的硬币个数是{0}, 2分钱的硬币个数是{1}, 5分钱的硬币个数是{2}",

x, y, z);

}

return num;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐