• 算法学习笔记


    今天看到几个有意思的算法题,顺便记录一下

    第一题:不允许使用循环语句和条件语句,在控制台中打印出1-200这200个数

    //不允许使用循环语句和条件语句,在控制台中打印出1-200这200个数
    public static bool PrintNumbers(int value)
    {
        Console.WriteLine(value.ToString());
        return value >0 && value < 200 && PrintNumbers(++value);
    }

    其实在算法中有很多有涉及到对二进制的妙用,下面为1-16的二进制

    //00000001(1)     //00001001 (9)
    //00000010(2)     //00001010 (10)
    //00000011(3)     //00001011 (11)
    //00000100(4)     //00001100 (12)
    //00000101(5)     //00001101 (13)
    //00000110(6)     //00001110 (14)
    //00000111(7)     //00001111 (15)
    //00001000(8)     //00010000 (16)

    第二题:判断一个数是不是偶数

    //常见的写法
    public static bool IsEvenNumber2(int value)
    {
        return value % 2 == 0;
    }
    
    //利用二进制
    public static bool IsEvenNumber1(int value)
    {
        return value > 0 && (value >> 1 << 1).Equals(value);
    }
    
    //利用二进制
    public static bool IsEvenNumber2(int value)
    {
        return (value & 1) == 0;
    }

    第三题: 判断一个数是不是2的N次方

    //判断一个数是不是2的N次方
    public static bool ValueJudge(int value)
    {
        int valuePrev = value - 1;
        return (value & valuePrev).Equals(0);
    }

    第四题:不用.Net自带的方法,将字符串转换为整型

    //不用.Net自带的方法,将字符串转换为整型
    public static int ToInt32(string value)
    {
        int result = 0;
        foreach (char val in value)
        {
            result = result * 10 + (val - '0');
        }
        return result;
    }

    第五题:交换两个整形变量的值

    public static void Main(string[] args)
    {
        int value1 = 10;
        int value2 = 20;
        ExChangeValue(ref value1, ref value2);
        Console.WriteLine("Value1:{0}; Value2:{1}", value1, value2);
    }
    
    public static void ExChangeValue(ref int value1, ref int value2)
    {
        value1 ^= value2;
        value2 ^= value1;
        value1 ^= value2;
    }
  • 相关阅读:
    js数组根据对象中的元素(相同的属性值)去重
    nginx设置add_header 跨域依旧失败解决
    canvas前端压缩图片和视频首屏缩略图并上传到服务器
    纯前端下载文件的方法
    vue多文件上传进度条 进度不更新问题
    jquery中attr和prop的区别
    为什么我认为数据结构与算法对前端开发很重要?
    CSS2.0实现面包屑
    Vue是如何渲染页面的,渲染过程以及原理代码
    js 事件驱动原理
  • 原文地址:https://www.cnblogs.com/tracine0513/p/4908875.html
Copyright © 2020-2023  润新知