zoukankan      html  css  js  c++  java
  • 算法学习笔记

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

    第一题:不允许使用循环语句和条件语句,在控制台中打印出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;
    }
  • 相关阅读:
    HDU 1124 Factorial
    hdu 1690 Bus System
    hdu 1113 Word Amalgamation
    POJ 2482 Stars in Your Window
    hdu 1385 ZOJ 1456 Minimum Transport Cost(经典floyd)
    hdu 1907 John
    VMware 虚拟机 安装 UBuntu 9.10 命令模式转换成窗口模试
    #pragma CODE_SEG __NEAR_SEG NON_BANKED详解
    Ubuntu 下Hadoop 伪分布式 hadoop0.20.2.tar.gz 的安装
    文件拷贝代码以及疑问
  • 原文地址:https://www.cnblogs.com/tracine0513/p/4908875.html
Copyright © 2011-2022 走看看