コード例 #1
0
ファイル: Program.cs プロジェクト: Noligz/NetEaseExam
        static void Main1(string[] args)
        {
            string[] strarr ={"-865987453.36589"
                                 ,"73.23658"
                                ,"0.98"
                            ,"-0.000098784000"
                            ,"-00000001120.0"
                            ,"0"
                            ,"-0.0"
                            };
            BigNum[] bnarr=new BigNum[strarr.Length];
            for (int i = 0; i < strarr.Length; i++)
            {
                bnarr[i] = new BigNum(strarr[i]);
            }

            Level_1 l1 = new Level_1();

            string str = l1.p1_damageBonuses(strarr[0], strarr[1]);
            Console.WriteLine(str);

            int[] cards={1,2,3,4,5};
            int m = 0;
            int result = l1.p3_combo(cards, m);

            Console.Read();
        }
コード例 #2
0
ファイル: QAExam_CS_2014.cs プロジェクト: Noligz/NetEaseExam
 //【强大的攻击值】
 //游戏中的数值系数会随着等级或者装备的提升而不断增大,如果一开始没有规划好,
 //将会导致数值计算超出程序语言所能支持的最大精度而溢出;譬如一个高阶玩家的攻
 //击数值是“865987453”,在战斗中触发了强力暴击,攻击系数提升73倍,那算起来
 //就超过了32bit的数值精度;现在为了全面解决这类问题,程序员已经全部把计算接
 //口做了改善增加了对大数据的支持;现在你需要简单地写段大数据乘法的代码去测试
 //程序员的改动是否正确。
 //===============================
 //【参数】:   2个字符串参数(a,b)分别是两个用半角字符串表示的实数(只包括
 //             正负号、小数点和数字,且题目保证单个参数的字符长度<=50);
 //             比如:参数为-865987453.36589,73.23658),代表将要乘的两个乘数
 //             是-865987453.36589,73.23658;
 //
 //【返回】:   全精度计算结果(半角字符串,碰到小数位末尾有0请截去);
 //             上述例子中的参数将对应输出字符串:-63421959407.4272722562;
 public string p1_damageBonuses(string a, string b)
 {
     //请填入代码
     BigNum l = new BigNum(a);
     BigNum r = new BigNum(b);
     BigNum result = l * r;
     return result.ToString();
 }
コード例 #3
0
ファイル: BigNum.cs プロジェクト: Noligz/NetEaseExam
        public static BigNum operator *(BigNum a, BigNum b)
        {
            BigNum ret = new BigNum();

            for (int i = 0; i < b._element.Count; i++)
            {
                if (b.GetElement(i) == 0)
                    continue;
                for (int j = 0; j < a._element.Count; j++)
                {
                    if (a.GetElement(j) == 0)
                        continue;
                    ret.SetElement(i + j, ret.GetElement(i + j) + a.GetElement(j) * b.GetElement(i));
                }

                ret.Refine();
            }

            ret._isNegtive = a._isNegtive ^ b._isNegtive;
            ret._dotPos = a._dotPos + b._dotPos;

            return ret;
        }