int GetSum(int min, int max) { if (min <= max) { return min + GetSum(min + 1, max); } else { return 0; } }
static void Main(string[] args) { List<int> list = new List<int>(); for (int i = 1; i <= 8; i++) list.Add(i); int result = GetSum(list)[0]; Console.WriteLine(result); } static List<int> GetSum(List<int> list) { List<int> listResult = new List<int>(); if (list.Count == 0) return null; else if (list.Count == 1) return list; for (int i = 0; i < list.Count; i += 2) listResult.Add(list[i] + list[i + 1]); return GetSum(listResult); }
//符合:1+2,3+4,5+6 7+8…… 3,7,11,15…… 10,26 …… 36 int GetSum(int[] array) { int length = array.Length; if (length == 1) { return array[0]; } int newlength = (length + 1) / 2; int[] newarray = new int[newlength]; for (int i = 0; i < newlength; i++) { if (i * 2 + 1 < length) { newarray[i] = array[i * 2] + array[i * 2 + 1]; } else { newarray[i] = array[i * 2]; } } return GetSum(newarray); }调: int[] array = new int[]{1,2,3}; Response.Write(GetSum(array).ToString());
一句话搞定: static void Main(string[] args) { Console.WriteLine(GetSum(8)); } static int GetSum(int n) { return n > 1 ? n + GetSum(--n) : n; }
改成这样就好了: static List<int> GetSum(List<int> list) { List<int> listResult = new List<int>(); if (list.Count == 0) return null; else if (list.Count == 1) return list; if(list.Count % 2 == 0) for (int i = 0; i < list.Count; i += 2) listResult.Add(list[i] + list[i + 1]); else { for (int i = 0; i < list.Count - 1; i += 2) listResult.Add(list[i] + list[i + 1]); listResult.Add(list[list.Count - 1]); } return GetSum(listResult); }
{
if (min <= max)
{
return min + GetSum(min + 1, max);
}
else
{
return 0;
}
}
static void Main(string[] args)
{
List<int> list = new List<int>();
for (int i = 1; i <= 8; i++)
list.Add(i);
int result = GetSum(list)[0];
Console.WriteLine(result);
} static List<int> GetSum(List<int> list)
{
List<int> listResult = new List<int>();
if (list.Count == 0)
return null;
else if (list.Count == 1)
return list;
for (int i = 0; i < list.Count; i += 2)
listResult.Add(list[i] + list[i + 1]);
return GetSum(listResult);
}
3,7,11,15……
10,26 ……
36 int GetSum(int[] array)
{
int length = array.Length;
if (length == 1)
{
return array[0];
}
int newlength = (length + 1) / 2;
int[] newarray = new int[newlength];
for (int i = 0; i < newlength; i++)
{
if (i * 2 + 1 < length)
{
newarray[i] = array[i * 2] + array[i * 2 + 1];
}
else
{
newarray[i] = array[i * 2];
}
}
return GetSum(newarray);
}调: int[] array = new int[]{1,2,3};
Response.Write(GetSum(array).ToString());
{
Console.WriteLine(GetSum(8));
} static int GetSum(int n)
{
return n > 1 ? n + GetSum(--n) : n;
}
{
List<int> listResult = new List<int>();
if (list.Count == 0)
return null;
else if (list.Count == 1)
return list;
if(list.Count % 2 == 0)
for (int i = 0; i < list.Count; i += 2)
listResult.Add(list[i] + list[i + 1]);
else
{
for (int i = 0; i < list.Count - 1; i += 2)
listResult.Add(list[i] + list[i + 1]);
listResult.Add(list[list.Count - 1]);
}
return GetSum(listResult);
}
感兴趣的请联系我
email:[email protected]
msn: [email protected]