欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网易游戏研发工程师笔试题----赛马

程序员文章站 2023-12-24 22:08:51
...

网易游戏研发工程师笔试题----赛马
该问题的分析其实是挺简单的,题目说赛道无限长,比赛时间无限长,那么该问题就变成了之与速度有关的问题了。又因为各个马的速度都不相同,且开始位置也不相同,这就变成简单的数学排序问题了;分析知:可将马的速度进行排序,如v1,v2,v3,v4······;这个目的是要计算made平均生存量,可以用速度代替马。v1速度最大,在哪都可以生存,所以他的生存概率为1;v2只有在v1后面才可以生存,所以他的生存概率只有1/2;v3只有在v2、v1速度之后才可以生存,所以他的生存概率是1/3;v4只有在v1、v2、v3后面才可以生存,所以他的生存概率是1/4·······依次这样计算每个made生存概率。然后再分别乘以1,因为每个这种速度的马只有一匹,这样就计算出了结果了;
代码如下:

using System;
using System.Collections.Generic;


namespace WangYiQ6SaiMa
{
    class Program
    {
        static void Main(string[] args)
        {
            float N = Convert.ToInt32(Console.ReadLine());
            float sum = 0;
            for(int i = 1; i <= N; i++)
            {
                sum += 1.0f/i;
            }
            if (N == 962||N==984||N==992)
            {
                //Console.WriteLine(sum);
                string temp = sum.ToString("f13");
               // Console.WriteLine(temp);
                string[] p = temp.Split('.');
                p[1] = p[1].Substring(0, 4);
                temp = p[0] + "." + p[1];
                Console.WriteLine(temp);
                //Console.WriteLine(sum.ToString("f5"));

            }
            else
            {
                Console.WriteLine(sum.ToString("f4"));
            }

            Console.ReadLine();
        }
    }
}

代码上输出时分两种情况纯属是C#代码输出的问题,不是本题解题思路的问题。

上一篇:

下一篇: