去某软面试 面试官给个题上黑板做,写个算法 求95转2进制后1的个数。

我在黑板上敲了

static int count = 0;
/// <summary>
/// 获取10进制数转2进制后中1的个数
/// </summary>
public static void BinCount(int a)
{
int n = -1;
int b = 0;
while(b<=a)
{
n++;
b = (int)Math.Pow(2, n);
}
count++;
var m = (int)Math.Pow(2, n - 1);
if (a - m <= 0)
{
return;
}
BinCount(a - m);
}

  下面是main函数调用  返回的结果是6 完全正确。

static void Main(string[] args)
{
BinCount(95);
var binCount= count;
}

 其实面试官是考你怎么把10进制转成2进制 要求写出10进制转2进制的算法

于是乎我又写了如下:

        static string str =string.Empty;
/// <summary>
/// 10进制转2进制
/// </summary>
/// <param name="a"></param>
public static void GetBinary(int a)
{
if(a % 2 == 0)
{
str += "0";
}
else
{
str += "1";
}
if(a / 2<1)
{
return;
}
GetBinary(a / 2);
}  

应该用

StringBuilder 只有一个指针 不然空间会浪费很多

下面是main 函数调用 结果是 1111101

static void Main(string[] args)
{ GetBinary(95);
var binarya = str;
}

  好吧 结果 是反的,那再考你一个 字符串反转。给你个 “abcd”  给我返回“dcba”

我又写了下面反转方法:

/// <summary>
/// char数组反转
/// </summary>
/// <param name="str"></param>
public static void Reverse(char[] str)
{
if (str == null)
{
return;//空判断这个细节一定不能漏
}
int i = 0;
while(i<str.Length-1-i)
{
var tem = str[i];
str[i] = str[str.Length -1- i];
str[str.Length -1- i] = tem;
i++;
}
}

  于是乎 二进制的也就完整了  返回的binary =1011111

static void Main(string[] args)
{ GetBinary(95);
var binary = str;
char[] arr = str.ToCharArray();
Reverse(arr);
binary = new string(arr);
}

  

c#十进制转二进制算法 和字符串反转算法的更多相关文章

  1. Java算法之字符串反转分析

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 在基本的工作内容开发中,算法不会显得那么重要,而在百万级别的时候,差距非常大,今天带大家研究下常见的 ...

  2. 趣味算法:字符串反转的N种方法(转)

    老赵在反对北大青鸟的随笔中提到了数组反转.这的确是一道非常基础的算法题,然而也是一道很不平常的算法题(也许所有的算法深究下去都会很不平常).因为我写着写着,就写出来8种方法……现在我们以字符串的反转为 ...

  3. 关于一道面试题,使用C#实现字符串反转算法

    关于一道面试题,使用C#实现字符串反转算法. 题目见http://student.csdn.net/space.php?do=question&ac=detail&qid=490 详细 ...

  4. 算法之--字符串反转【python实现】

    题目描述 给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符'a'和'b'移动到字符串的尾部,使得原字符串变成字符串“cdefab”.请写一个函数 ...

  5. 线程安全使用(四) [.NET] 简单接入微信公众号开发:实现自动回复 [C#]C#中字符串的操作 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化 自已动手做高性能消息队列 自行实现高性能MVC WebAPI 面试题随笔 字符串反转

    线程安全使用(四)   这是时隔多年第四篇,主要是因为身在东软受内网限制,好多文章就只好发到东软内部网站,懒的发到外面,现在一点点把在东软写的文章给转移出来. 这里主要讲解下CancellationT ...

  6. 小白学python之整型,布尔值,十进制二进制转换和字符串详解for循环!

    整型与字符串转化 十进制转二进制. python2,存在int 整型和long(长整型),在python3里就是int/获取的是浮点数 小数 print(bin(15)) 这样可以通过代码来计算十进制 ...

  7. 前端与算法 leetcode 344. 反转字符串

    目录 # 前端与算法 leetcode 344. 反转字符串 题目描述 概要 提示 解析 解法一:双指针 解法二:递归 算法 传入测试用例的运行结果 执行结果 GitHub仓库 # 前端与算法 lee ...

  8. Go语言十进制转二进制字符串

    Go语言十进制转二进制字符串 代码Demo func Test_2(t *testing.T) { // 方法一 fmt.Println(DecToBin(5)) // 方法二:导入包"gi ...

  9. 十进制二进制之间的转化 PHP算法

    [ 十进制转二进制 ] function test($var){ $func = function($i){ if($i < 2){ return $i; } $return['int'] = ...

随机推荐

  1. angular 2+ 变化检测系列二(检测策略)

    我们将创建一个简单的MovieApp来显示有关一部电影的信息.这个应用程序将只包含两个组件:显示有关电影的信息的MovieComponent和包含执行某些操作按钮的电影引用的AppComponent. ...

  2. js分析 天_眼_查 字体文件

    0. 参考 js分析 猫_眼_电_影 字体文件 @font-face 1. 分析 1.1 定位目标元素 1.2 查看网页源代码 1.3 requests 请求提取得到大量错误信息 对比猫_眼_电_影抓 ...

  3. jsp中静态include和动态include的区别

    jsp中静态include和动态include的区别 动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="included.jsp&quo ...

  4. windows server 简化设置

    win2012任务管理器显示磁盘管理员运行命令提示符,diskperf -y 不要开机密码 运行 netplwiz 勾去掉 运行 gpedit.msc 计算机设置-Windows设置 -安全设置-帐户 ...

  5. Jboss getshell

     Jboss 的安装需要 JDK 环境 JDK+JBOSS 包  初始环境配置 系统变量名        变量值 PATH                  %JAVA_HOME%\bin:%JAVA ...

  6. 取消layUI中日期选择控件默认填充日期

    input标签中使用日期选择控件填写,加载时默认填充当前日期, 标签设置了placeholder="请选择" autocomplete="off",但是并没有效 ...

  7. php curl 跨域情趣

    function curl_post($url='',$postdata='',$options=array()){ $ch=curl_init($url); curl_setopt($ch,CURL ...

  8. [LeetCode] Domino and Tromino Tiling 多米诺和三格骨牌

    We have two types of tiles: a 2x1 domino shape, and an "L" tromino shape. These shapes may ...

  9. jdbc的入门学习

    一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...

  10. Servlet 参数

    1.应用参数,在web.xml配置,所有Servlet共用 <context-param> <param-name>driver</param-name> < ...