Last active
August 29, 2015 14:01
-
-
Save jikeytang/d1a71e69592ec582280f to your computer and use it in GitHub Desktop.
[ Javascript ] - 20140521-题目1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
今天三题由杭州-轨道提供,他的blog:http://blog.csdn.net/chriswenwu/ | |
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有用户控制。 | |
回复时注意加上下面这句话,才会有语法高亮或格式缩进。 | |
```javascript |
//n为数字 l为个数
function clec(n,l){
var a=n,res=0;
for(var i=0; i<l;i++){
res+=Number(n);
n+=''+a;
}
return res;
}
console.log(clec(2,5));
// 天牛答案:
function a(n){
var arr = new Array(n+1).join(n),i=1,re=0;
for(;i<=n;i++){
re += arr.slice(0,i)-0;
}
return re;
}
console.log(a(5));
function getS($n,$a){
$sum='$sum='.$n;
for ($i=2; $i <= $a; $i++) {
$sum.='+'.str_repeat($n,$i);
}
eval($sum.';');
return $sum;
}
三哥答案
var add= function(times,num){
num = (num || 1) + '';
var _num ='', num_arr =[];
while(times > 0){
_num += num;
num_arr.push(_num);
times--;
}
return new Function('return ' + num_arr.join('+'))();
// // 看了上述高手答案 赞一个 caigou 兄台的方法 下面是用他/她的方法进行的修改 在测试时,发现这样会更提升代码执行效率 测试浏览器===》 firefox 30 dev
var cache_num = num,
res = 0;
while(--times > -1){
res += (n-0);
num += ("" + cache_num);
}
return res;
};
function qiuhe(a,num){
var s=0,result=[],finalresult=0;
for(var i=0;i<num;i++){
s=s+a*Math.pow(10,i);
result.push(s);
}
for(var j=0;j<result.length;j++){
finalresult+=result[j];
}
return finalresult;
}
alert(qiuhe(3,4));
var sum = function(a, count){
if(isNaN(a) || isNaN(count) || a!==parseInt(a) || count!==parseInt(count)){
return 0;
}
var sum = 0;
for(var i=1; i<=count;i++)
{
var currentLoop = new Array(i+1).join(a);
sum = +sum + +currentLoop;
}
return sum;
}
function a(n,l){
var arr = new Array(l+1).join(n),i=1,re=0;
for(;i<=l;i++){
re += arr.slice(0,i)-0;
}
return re;
}
console.log(a(2,5));
//借助repeat方法
function sum(num, n){
var a = [], i = 0, res = 0;
for(; i <= n; i++){
res += ~~repeat(num, i);
}
return n ? res : 0;
}
function repeat(num, n){
return new Array(n+1).join(num);
}
console.log(sum(2, 3));
加法: 从低位加到高位.
function sum( m, n ) {
m = ~~m, n = ~~n;
if ( m < 1 || n < 1 ) return m;
var ret = m, cur = m, i = 0;
while ( ++i < n ) {
cur = cur * 10 + m;
ret += cur;
}
return ret;
}
function getValue(v, num){ // v代表数字, num代表几个
if( num <= 1){
return v ;
}else{
return v*fn( num ) + getValue(v, num - 1);
}
}
function fn( num ){
var a = '' ;
for(var i = 0; i < num; i ++ ){
a += 1 ;
}
return parseInt(a);
};
console.log( getValue( 3,3 ) )
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
看看我的