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;
    }
  • 相关阅读:
    信息学奥赛一本通(C++)在线评测系统——基础(二)基础算法 —— 1312:【例3.4】昆虫繁殖
    信息学奥赛一本通(C++)在线评测系统——基础(二)基础算法 —— 1312:【例3.4】昆虫繁殖
    数数塔 NBUT 1083
    SSLZYC 2576 平台
    SSLZYC 2133 腾讯大战360
    SSLZYC 2575 给出字符串
    SSLZYC 2574 Closest
    SSLZYC 1127 方程的解数
    SSLZYC 1692 魔板
    SSLZYC 1125 集合
  • 原文地址:https://www.cnblogs.com/tracine0513/p/4908875.html
Copyright © 2011-2022 走看看