首页 > 新闻系统 > 编程天地 > 文章正文

一个培训测试试题及解答

2007-12-20 14:04:39 来源:中国自学编程网 作者:转载 点击:
一个培训测试试题及解答

题目描述:

有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++;
  

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

本周软件下载排行

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203