Project Ruler 算法练习之 10 进制 转 2进制 以及数字对称

问题描述:

The decimal number, 585 = 10010010012 (binary), is palindromic in both bases.

Find the sum of all numbers, less than one million, which are palindromic in base 10 and base 2.

(Please note that the palindromic number, in either base, may not include leading zeros.)

1.找出十进制对称的数字

2.在十进制对称的数字转2进制找出2进制也对称的数字

(function(){

var isPalin = function (n){
var strN = n.toString();
if(strN.length < 2)return false;

for(var i =0 ;i <= n/2;i++){if(strN[i] != strN[strN.length-1-i]) return false;}

return true;
};

var toBinary = function tb(n){
if(this.ret == undefined) this.ret = "";

var tmp = n / 2 | 0;
this.ret = (n % 2).toString() + this.ret;
if(tmp == 1){var r = "1" + this.ret; this.ret = ""; return r;}
else{return tb(tmp);}

};

for(var i = 1; i< 300 ;i ++){
if(isPalin(i) && isPalin(toBinary(i))) console.log (i);
}

})();

Project Ruler 算法练习之 10 进制 转 2进制 以及数字对称

时间: 2024-08-04 13:45:00

Project Ruler 算法练习之 10 进制 转 2进制 以及数字对称的相关文章

Project Ruler 算法练习之除数问题

问题描述: The fraction 49/98 is a curious fraction, as an inexperienced mathematician in attempting to simplify it may incorrectly believe that49/98 = 4/8, which is correct, is obtained by cancelling the 9s. We shall consider fractions like, 30/50 = 3/5,

Project Ruler 算法练习之 Truncate Prime

问题描述: The number 3797 has an interesting property. Being prime itself, it is possible to continuously remove digits from left to right, and remain prime at each stage: 3797, 797, 97, and 7. Similarly we can work from right to left: 3797, 379, 37, and

C# 10进制与62进制互转 数据大无压力 10进制与72,96进制任意转换

因项目需要把10进制的ID转换成62进制的字符串,分享给别人. 于是在网上搜索了很多算法,但都未能满足需要,项目里的ID是固定算法算出来的18~20位数据的ulong整型. 如:17223472272256398107,509488277152981097. 网上找的算法问题在于,将ulong的值转换62进制的字符串后,再将字符串转换成ulong值时会不准确. 于是各种测试与假象问题所在,最后确定算法确实没有问题,于是开始怀疑数据类型的问题. 果然,原因是使用了Math.Pow(double x

10进制转62进制,实现穷举指定位数的所有密码组合(暴力破解)

因为我们这里要穷举的密码包括0-9,a-z,A-Z共62个字符,所以我们采用62进制来遍历. 首先,我们实现一个10进制转62进制的方法. private static char[] charSet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(); //private static string[] charSet = { "0", "1&qu

2进制,10进制,16进制,补码和移位

逢二进一,逢十进一,十六进制 10110101(2) = 128+32+16+4+1 = 181(10) b 5(16) = b*16+5 = 11*16+5 = 181(10) 2进制 int n = 45; System.out.println(Integer.toBinaryString(n)); 计算机的内部(Java)只有2进制数据, 在显示的时候编程语言提供API将2进制转换为10进制显示出来. 计算机只能处理2进制数据, 利用编程语言提供的算法支持了10进制 Java中用于支持2进

python中2进制、10进制、16进制等之间的转换

10转2: bin(8) # '0b1000' 2转10: int('1000', 2) # 8 10转16: hex(15) # '0xf' 16转10: int('f', 16) # 15 2进制和16进制中间通过转10进制可以相互转换

华为笔试练习题----解析9进制,11进制的字符串为10进制的数字输出

                                                                              解析9进制,11进制的字符串为10进制的数字输出 描述: 解析9进制,11进制的字符串为10进制的数字输出,输入的字符串有效位(0v0012345678)长度不超过8位,前面的00不算做有效位.解析后以10进制的数字输出.如果解析到非法字符串则返回-1 9进制: 9进制的数的范围:0,1,2,3,4,5,6,7,8 9进制的开始为:0V或者0

javascript 10进制和64进制的转换

原文:javascript 10进制和64进制的转换 function string10to64(number) { var chars = '0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ-~'.split(''), radix = chars.length, qutient = +number, arr = []; do { mod = qutient % radix; qutient = (qutient - m

( 转)Sqlserver中tinyint, smallint, int, bigint的区别 及 10进制转换16进制的方法

一.类型比较 bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据,存储大小为 8 个字节.一个字节就是8位,那么bigint就有64位 int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据,存储大小为 4 个字节.int类型,最大可以存储32位的数据 smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据,存储大小为 2 个