c#十进制转二进制算法 和字符串反转算法
去某软面试 面试官给个题上黑板做,写个算法 求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#十进制转二进制算法 和字符串反转算法的更多相关文章
- Java算法之字符串反转分析
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 在基本的工作内容开发中,算法不会显得那么重要,而在百万级别的时候,差距非常大,今天带大家研究下常见的 ...
- 趣味算法:字符串反转的N种方法(转)
老赵在反对北大青鸟的随笔中提到了数组反转.这的确是一道非常基础的算法题,然而也是一道很不平常的算法题(也许所有的算法深究下去都会很不平常).因为我写着写着,就写出来8种方法……现在我们以字符串的反转为 ...
- 关于一道面试题,使用C#实现字符串反转算法
关于一道面试题,使用C#实现字符串反转算法. 题目见http://student.csdn.net/space.php?do=question&ac=detail&qid=490 详细 ...
- 算法之--字符串反转【python实现】
题目描述 给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符'a'和'b'移动到字符串的尾部,使得原字符串变成字符串“cdefab”.请写一个函数 ...
- 线程安全使用(四) [.NET] 简单接入微信公众号开发:实现自动回复 [C#]C#中字符串的操作 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化 自已动手做高性能消息队列 自行实现高性能MVC WebAPI 面试题随笔 字符串反转
线程安全使用(四) 这是时隔多年第四篇,主要是因为身在东软受内网限制,好多文章就只好发到东软内部网站,懒的发到外面,现在一点点把在东软写的文章给转移出来. 这里主要讲解下CancellationT ...
- 小白学python之整型,布尔值,十进制二进制转换和字符串详解for循环!
整型与字符串转化 十进制转二进制. python2,存在int 整型和long(长整型),在python3里就是int/获取的是浮点数 小数 print(bin(15)) 这样可以通过代码来计算十进制 ...
- 前端与算法 leetcode 344. 反转字符串
目录 # 前端与算法 leetcode 344. 反转字符串 题目描述 概要 提示 解析 解法一:双指针 解法二:递归 算法 传入测试用例的运行结果 执行结果 GitHub仓库 # 前端与算法 lee ...
- Go语言十进制转二进制字符串
Go语言十进制转二进制字符串 代码Demo func Test_2(t *testing.T) { // 方法一 fmt.Println(DecToBin(5)) // 方法二:导入包"gi ...
- 十进制二进制之间的转化 PHP算法
[ 十进制转二进制 ] function test($var){ $func = function($i){ if($i < 2){ return $i; } $return['int'] = ...
随机推荐
- node+mongoose+vue
app.js 入门 let express = require('express'); let app = express(); let allowCrossDomain = function (re ...
- Android Frameworks的base目录内容分析 “Android Frameworks base”
Framework文件夹中base目录下文件分类: Android系统结构框架: Android Framework层各文件夹功能分类:
- c++11 线程池
也可参考: https://www.cnblogs.com/ailumiyana/p/10016965.html *** https://blog.csdn.net/jlusuoya/article/ ...
- 杭电1257 dp(java)
最少拦截系统 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的 ...
- phantomjs 中文文档
phantomjs 中文文档 转载 入门教程:转载 http://www.cnblogs.com/front-Thinking/p/4321720.html 1.介绍 简介 PhantomJS是一 ...
- HTML5_canvas 画布
<canvas></canvas> 画布 <canvas id="my_canvas" width="400" height=&q ...
- 【C++ 实验六 继承与派生】
实验内容 1. 某计算机硬件系统,为了实现特定的功能,在某个子模块设计了 ABC 三款芯片用于 数字计算.各个芯片的计算功能如下: A 芯片:计算两位整数的加法(m+n).计算两位整数的减法(m-n) ...
- PDF文件怎么转换成PPT
在日常办公中大家都会发现PDF文件目前是比较常见的一种文件,有的时候大家会需要将PDF转换成PPT为了去更好的演示,毕竟PPT文件在演示方面具有着较好的特点,那如何将PDF文件转换成PPT文件呢,今天 ...
- ASP.NET Core 问题排查:Request.EnableRewind 后第一次读取不到 Request.Body
实际应用场景是将用户上传的文件依次保存到阿里云 OSS 与腾讯云 COS ,实现方式是在启用 Request.EnableRewind() 的情况下通过 Request.Body 读取流,并依次通过 ...
- 关于python列表和元组的基本操作
一.列表 列表是python中最常出现的一种数据存储形式,掌握列表的基本操作可以快速而有效的提高我们的代码书写效率.列表中存放的数据有如下基本操作:如增.删.改.查,掌握了这四个操作,就基本掌握了列表 ...