基础算法
1-2+3-4+5-6+......m 的算法
方法一:借鉴
static int F1(int m)
{
int sum = 0;
bool flag = true;
for (int i = 1; i <= m; i++)
{
if (flag) //一次是默认是True,下下也为True
sum += i;
else
sum -= i;
flag = !flag;
{
int sum = 0;
bool flag = true;
for (int i = 1; i <= m; i++)
{
if (flag) //一次是默认是True,下下也为True
sum += i;
else
sum -= i;
flag = !flag;
}
return sum;
}
return sum;
}
方法二:借鉴
static int F2(int m)
{
int sum = 0;
for (int i = 1; i <= m; i++)
{
if (i % 2 > 0) //即为奇数
sum += i;
else
sum -= i;
}
return sum;
}
{
int sum = 0;
for (int i = 1; i <= m; i++)
{
if (i % 2 > 0) //即为奇数
sum += i;
else
sum -= i;
}
return sum;
}
方法三:原创
static int F3(int m)
{
int sum = 0;
if (m % 2 == 0) //*判断m的奇偶性,
return sum = 0 - m / 2;//*如果是偶数,就是0-m/2;
else
return sum = (m + 1) / 2;//*如果是奇数就是(m+1)/2
}
{
int sum = 0;
if (m % 2 == 0) //*判断m的奇偶性,
return sum = 0 - m / 2;//*如果是偶数,就是0-m/2;
else
return sum = (m + 1) / 2;//*如果是奇数就是(m+1)/2
}
字符串 "I am a good man",设计一个函数,返回 "man good a am I"。
方法一:借鉴
static string Reverse1()
{
string s = "I am a good man";
string[] arr = s.Split(' ');
string res = "";
for (int i = arr.Length - 1; i >= 0; i--)
{
res += arr[i];
if (i > 0)
res += " ";
}
return res;
}
{
string s = "I am a good man";
string[] arr = s.Split(' ');
string res = "";
for (int i = arr.Length - 1; i >= 0; i--)
{
res += arr[i];
if (i > 0)
res += " ";
}
return res;
}
方法二:原创
static string Reverse2()
{
string s = "I am a good man";
string[] arr = s.Split(' ');
string value = string.Empty;
int count = arr.Length - 1;
while (count > -1)
{
value += arr[count] + " ";
count--;
}
return value;
}
{
string s = "I am a good man";
string[] arr = s.Split(' ');
string value = string.Empty;
int count = arr.Length - 1;
while (count > -1)
{
value += arr[count] + " ";
count--;
}
return value;
}
//条件:给出四个数字1、2、3、4 ;组成三位数:百位、十位、个位
//要求:组成的三位数不可以重复;每个数字在任意三位数中不可重复出现
//要求:组成的三位数不可以重复;每个数字在任意三位数中不可重复出现
//结果:列举和统计
方法一:借鉴
class Program
{
static void Main(string[] args)
{
{
static void Main(string[] args)
{
int count = 0; //统计个数
for (int bw = 1; bw <= 4; bw++)
{
for (int sw = 1; sw <= 4; sw++)
{
if (sw != bw) //很显然,只有百位和十位不同的情况下才能谈个位。
{
for (int gw = 1; gw <= 4; gw++)
{
if (gw != sw && gw != bw) //百位用过的,十位就不能用;百位和十位都用过的,个位就不能用
{
count++;
Console.WriteLine("{0}{1}{2}", bw, sw, gw);
}
}
}
}
}
Console.WriteLine("一共有{0}个", count);
Console.Read();
for (int bw = 1; bw <= 4; bw++)
{
for (int sw = 1; sw <= 4; sw++)
{
if (sw != bw) //很显然,只有百位和十位不同的情况下才能谈个位。
{
for (int gw = 1; gw <= 4; gw++)
{
if (gw != sw && gw != bw) //百位用过的,十位就不能用;百位和十位都用过的,个位就不能用
{
count++;
Console.WriteLine("{0}{1}{2}", bw, sw, gw);
}
}
}
}
}
Console.WriteLine("一共有{0}个", count);
Console.Read();
}
}
方法二:原创
class Program
{
static void Main(string[] args)
{
{
static void Main(string[] args)
{
int[] marks = new int[] { 1, 2, 3, 4 };//可以自动生成
int bw = 0, sw = 0, gw = 0;
int count = 0;//计数
foreach (int b in marks)
{
bw = b;//把值给到百位
foreach (int s in marks)
{
if (s == bw)
continue;
else
sw = s;//把值给到十位
foreach (int g in marks)
{
if (g == bw || g == sw)
continue;
else
gw = g;//把值给到个位
Console.WriteLine("{0}{1}{2}", bw, sw, gw);//输出
count++;
}
}
}
int bw = 0, sw = 0, gw = 0;
int count = 0;//计数
foreach (int b in marks)
{
bw = b;//把值给到百位
foreach (int s in marks)
{
if (s == bw)
continue;
else
sw = s;//把值给到十位
foreach (int g in marks)
{
if (g == bw || g == sw)
continue;
else
gw = g;//把值给到个位
Console.WriteLine("{0}{1}{2}", bw, sw, gw);//输出
count++;
}
}
}
Console.WriteLine("一共有{0}个", count);
Console.Read();
Console.Read();
}
}