1. 程式人生 > >網易遊戲研發工程師筆試題----賽馬

網易遊戲研發工程師筆試題----賽馬

這裡寫圖片描述
該問題的分析其實是挺簡單的,題目說賽道無限長,比賽時間無限長,那麼該問題就變成了之與速度有關的問題了。又因為各個馬的速度都不相同,且開始位置也不相同,這就變成簡單的數學排序問題了;分析知:可將馬的速度進行排序,如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.0
f/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#程式碼輸出的問題,不是本題解題思路的問題。