黑马程序员-- 一些算法总结

---------------------- ASP.Net+Android+IO开发.Net培训、期待与您交流! ----------------------

 

●打印三角形、菱形

1)直角三角形

 

Console.WriteLine("请输入您要打印的行数?");
int n = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= n; i++)
{
	for (int j = 1; j <= i; j++)
	{
		Console.Write("*");
	}
	Console.WriteLine();
}

2)直角三角形

Console.WriteLine("请输入您要打印的行数?");	
int n = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= n; i++)
{
    for (int j = 1; j <= n + 1 - i; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}

或者:

Console.WriteLine("请输入您要打印的行数?");
int n = Convert.ToInt32(Console.ReadLine());
for (int i = n; i >= 1; i--)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}

3)直角三角形

Console.WriteLine("请输入您要打印的行数?");
int n = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= n; i++)
{
    for (int space = 1; space <= i - 1; space++)
    {
        Console.Write(" ");
    }
    for (int j = 1; j <= n + 1 - i; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}

4)直角三角形

Console.WriteLine("请输入您要打印的行数?");
int n = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= n; i++)
{
    for (int space = 1; space <= n - i; space++)
    {
        Console.Write(" ");
    }
    for (int j = 1; j <= i; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}

5)菱形

Console.WriteLine("请输入您要打印的行数<奇数>?");
//得到上部分的总行数n
int n = Convert.ToInt32(Console.ReadLine())/2+1;
//打印上部分
for (int i = 1; i <= n; i++)
{
    for (int space = 1; space <= n - i; space++)
    {
        Console.Write(" ");
    }
    for (int j = 1; j <= i * 2 - 1; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}
//打印下部分
for (int i = 1; i <= n - 1; i++)
{
    for (int space = 1; space <= i; space++)
    {
        Console.Write(" ");
    }
    for (int j = 1; j <= (n - i) * 2 - 1; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}

6)九九乘法表

for (int i = 1; i <= 9; i++)
{
		for (int j = 1; j <= i; j++)
		{
			//方法一:
			Console.Write("{0}*{1}={2}\t", j, i, j * i);
			//方法二:{2:00}表示数字占2位,不足2位的用0补,若超过2位则不理会
			//Console.Write("{0}*{1}={2:00}  ",j,i,j*i);
		}
		Console.WriteLine();
}

     冒泡排序

最极端的例子:将【1020304050】这5个数按照从大到小的顺序排列

0趟,比较4次:2030405010

1趟,比较3次:3040502010

2趟,比较2次:4050302010

3趟,比较1次:5040302010

规律:1n个数进行排序,需要排n-1

         2)第i趟,比较的次数为n-1-i

1)从大到小的排序用“<”号;从小到大的排序用“>”号

2)将数组nums里的数按照从大到小的顺序排列:

for (int i = 0; i < nums.Length - 1; i++)//控制排的趟数
{
    for (int j = 0; j < nums.Length-1-i; j++)//控制每一趟比较的次数
    {
        if (nums[j] < nums[j + 1])//从大到小的排序用“<”号
        {
            //交换两个数的位置
            int temp=nums[j];
            nums[j] = nums[j + 1];
            nums[j + 1] = temp;
        }
    }
}

     质数(素数)的判断

1)质数:大于1的自然数(正整数)中,除了1和本身外,不能被其它自然数整除;

除了2以外,其它的质数都是奇数;

//封装一个方法来实现质数(素数)的判断
//1)根据:质素的定义
private static bool CheckPrime(int prime)
{
    if (prime == 1)
    {
        return false;
    }
    for (int i = 2; i < prime; i++)
    {
        if (prime % i == 0)
        {
            return false;//只要不是质素就返回false并退出方法,否则就一直循环
        }
    }
    return true;
}
//2)根据:除了2以外,其它的质数都是奇数和质数的定义
private static bool CheckPrime(int prime)
{
    if (prime == 1)
    {
        return false;
    }
    if (prime == 2)
    {
        return true;
    }
    if (prime % 2 == 0)
    {
        return false;
    }
    else
    {
        for (int i = 3; i < prime; i += 2)
        {
            if (prime % i == 0)
            {
                return false;
            }
        }
        return true;
    }
}

 

---------------------- ASP.Net+Android+IO开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值