zoukankan      html  css  js  c++  java
  • 开奖计算---五星直选复式

    开奖结果为5位数:

     万、千、百、十、个

    五星购买的时候必须至少每个位选择一个数进行组合,若每个位数对上计算中奖;那么我们必须先定义好复式的格式,如下:

    万千百十个

    开奖结果:1,2,3,4,5

    对数据进行组合:

    BetDetail的BetContent属性为投注内容,

    BetContent="1,2,3,4,5";

     1  /// <summary>
     2         /// 根据投注内容得到所有的组合情况
     3         /// </summary>
     4         /// <returns></returns>
     5         private List<string> GetAllBets(BasicModel.LotteryBasic.BetDetail item)
     6         {
     7             if (null == item || string.IsNullOrEmpty(item.BetContent))
     8                 return null;
     9             else
    10             {
    11                 var bets = item.BetContent.Split(',');
    12                 if (bets.Count() != 5)
    13                 {
    14                     return null;
    15                 }
    16                 else
    17                 {
    18                     var list = new List<string>();
    19                     var wan = bets[0].Select(m => Convert.ToInt32(m.ToString())).ToList();
    20                     var qian = bets[1].Select(m => Convert.ToInt32(m.ToString())).ToList();
    21                     var bai = bets[2].Select(m => Convert.ToInt32(m.ToString())).ToList();
    22                     var shi = bets[3].Select(m => Convert.ToInt32(m.ToString())).ToList();
    23                     var ge = bets[4].Select(m => Convert.ToInt32(m.ToString())).ToList();
    24                     list = (from w in wan
    25                             from q in qian
    26                             from b in bai
    27                             from s in shi
    28                             from g in ge
    29                             select string.Format("{0}{1}{2}{3}{4}", w, q, b, s, g)).ToList();
    30                     return list;
    31                 }
    32             }
    33         }
    View Code

    执行GetAllBets获取组合的结果,然后对结果进行比对,若与开奖结果的每个位置比对成功,那么久算中奖:

    1  var list = GetAllBets(item);
    2                 var result = list.Find(m => m == openResult.Replace(",", ""));
    3                 if (result != null)
    4                 {
    5                     item.IsMatch = true;
    6                     decimal stepAmt = 0;
    7                     item.WinMoney = TotalWinMoney(item, GetBaseAmt(item, ref stepAmt), stepAmt, 1);
    8                 }
    View Code

    若有不明白的请私信我或加群:542620409一起讨论

  • 相关阅读:
    Win7+Ubuntu11.10(EasyBCD硬盘安装)
    hdu 3661 Assignments
    hdu 1128 Self Numbers
    CF 152 B. Chilly Willy
    hdu 1754 I Hate It
    A survey of wireless network simulation and/or emulation software for use in higher education
    How to Fix Packet Loss: Causes, Simple Solutions & Top Tools
    getchar函数
    C++“左值”和“右值”
    stdio.h中的stdio
  • 原文地址:https://www.cnblogs.com/heqinghua/p/5468174.html
Copyright © 2011-2022 走看看