C#遍历两个骰子数组统计元素和为10的配对数实现方法
解决方案
适配性说明
foreach 遍历完全适配当前场景,实现逻辑简单直观,不容易出错。
遍历实现逻辑
你只需要嵌套两层foreach循环即可:
- 外层遍历第一个骰子的所有可能点数
- 内层遍历第二个骰子的所有可能点数
- 每次判断两个点数之和是否为10,符合条件就将计数变量
tenPairs加1
补全后的完整代码
{ // 存储和为10的配对总数 int tenPairs = 0; // 生成两个骰子的点数数组,num1、num2为对应骰子的面数 int[] die1 = Enumerable.Range(1, num1).ToArray(); int[] die2 = Enumerable.Range(1, num2).ToArray(); // 嵌套foreach遍历所有配对组合 foreach (int d1 in die1) { foreach (int d2 in die2) { if (d1 + d2 == 10) { tenPairs++; } } } // 返回结果字符串 string resultMsg = "There are " + tenPairs +" total ways to make 10."; return resultMsg ; }
可选简化方案(LINQ写法)
如果你不想手写循环,可以直接用LINQ的内置方法一行完成统计,效果和嵌套循环完全一致:
tenPairs = die1.Sum(d1 => die2.Count(d2 => d1 + d2 == 10));
内容的提问来源于stack exchange,提问作者DylanB
相关产品推荐
相关产品推荐

