如何递归迭代日期的数字和总和
本文关键字:日期 数字 迭代 何递归 递归 | 更新日期: 2023-09-27 18:30:59
我想递归迭代日期的数字,将它们相加,然后在第一个总和中计算各个数字的另一个总和。
例如出生日期 1947年8月15日 (15/08/1947)
1+5+0+8+1+9+4+7 = 35
3+5 = 8
答案: 8
LINQ 的.Aggregate()
函数对我帮助很大...
DOB.toString().Aggregate((a,b)=>(int)a+(int)b)
。但它的结果是 35 :(
我想要一个递归的 LINQ 调用,结果始终为一位数。
string result = DOB.ToString("ddMMyyyy");
while (result.Length > 1)
result = result.Sum(c => int.Parse(c.ToString()))
.ToString();
DOB.ToString("yyyymmdd") 只返回 8 位数字。每个数字不超过 9,因此第一个总和永远不会超过 8*9=72。因此,只需要一个又一个求和。最后,一个单林克的答案是:
sum =
dob.ToString("yyymmdd")
.Aggregate(0, (a, b) => a + int.Parse(b.ToString())).ToString()
.Aggregate(0, (a, b) => a + int.Parse(b.ToString())).ToString()
.Aggregate(0, (a, b) => p + int.Parse(b.ToString()));