[8 kyu] Name on billboard
You can print your name on a billboard ad. Find out how much it will cost you. Each character has a default price of £30, but that can be different if you are given 2 parameters instead of 1.
You can not use multiplier "*" operator.
If your name would be Jeong-Ho Aristotelis, ad would cost £600. 20 leters * 30 = 600 (Space counts as a character).
翻譯:
你可以把你的名字印在廣告牌上,看看要花多少錢。每個角色的默認(rèn)價格為30英鎊,但如果給你2個參數(shù)而不是1個參數(shù),則價格可能會有所不同。
不能使用乘數(shù) “ * ” 運(yùn)算符。
如果你的名字是Jeong-Ho Aristotelis,廣告將花費(fèi)600英鎊。(空格也算是一個符號)
解:
function billboard(name, price = 30){
var total = 0;
for(i=0; i<name.length; i++){
total += price;
}
return total;
}
[7 kyu] Find the nth Digit of a Number
Note
If num is negative, ignore its sign and treat it as a positive value
If nth is not positive, return -1
Keep in mind that 42 = 00042. This means that findDigit(42, 5) would return 0
Examples(num, nth --> output)
5673, 4 --> 5
129, 2 --> 2
-2825, 3 --> 8
-456, 4 --> 0
0, 20 --> 0
65, 0 --> -1
24, -8 --> -1
翻譯:
完成以num和n兩個數(shù)字作為輸入的函數(shù),并返回num的第n位(從右向左計數(shù))。
解一:
var findDigit = function(num, nth){
return nth <= 0 ? -1 : Math.floor(Math.abs(num)/Math.pow(10,nth-1))%10;
}
解二:
var findDigit = function(num, nth) {
return --nth < 0?-1:+(''+Math.abs(num)).split('').reverse()[nth] || 0;
};
[7 kyu] Sum of Odd Cubed Numbers
Find the sum of the odd numbers within an array, after cubing the initial integers. The function should return undefined if any of the values aren't numbers.
翻譯:
在對初始整數(shù)進(jìn)行立方運(yùn)算后,求數(shù)組中奇數(shù)的和。如果任何值不是數(shù)字,則函數(shù)應(yīng)返回undefined。
解:
function cubeOdd(arr) {
for (let i = 0; i < arr.length; i++) {
if (isNaN(arr[i])) { return undefined }
}
return arr.filter(x => x % 2 != 0).map(x => Math.pow(x, 3)).reduce((a, b) => a + b,0)
}
[8 kyu] Who is going to pay for the wall?
Don Drumphet lives in a nice neighborhood, but one of his neighbors has started to let his house go. Don Drumphet wants to build a wall between his house and his neighbor’s, and is trying to get the neighborhood association to pay for it. He begins to solicit his neighbors to petition to get the association to build the wall. Unfortunately for Don Drumphet, he cannot read very well, has a very limited attention span, and can only remember two letters from each of his neighbors’ names. As he collects signatures, he insists that his neighbors keep truncating their names until two letters remain, and he can finally read them.
Your code will show Full name of the neighbor and the truncated version of the name as an array. If the number of the characters in name is less than or equal to two, it will return an array containing only the name as is"
翻譯:
Don Drumphet住在一個不錯的社區(qū),但他的一個鄰居已經(jīng)開始放走他的房子。Don Drumphet想在他的房子和鄰居的房子之間建一堵墻,并試圖讓鄰里協(xié)會支付費(fèi)用。他開始請求鄰居請?jiān)?,要求協(xié)會修建圍墻。不幸的是,唐·德魯姆貝(Don Drumphet)讀不好,注意力有限,只能記住鄰居名字中的兩個字母。當(dāng)他收集簽名時,他堅(jiān)持要求鄰居不斷刪掉他們的名字,直到剩下兩個字母,他終于可以閱讀了。
您的代碼將以數(shù)組形式顯示鄰居的全名和名稱的截斷版本。如果名稱中的字符數(shù)小于或等于2,它將返回一個僅包含名稱的數(shù)組
例子:
Test.assertSimilar(whoIsPaying("Melissa"),["Melissa", "Me"]);
Test.assertSimilar(whoIsPaying("Me"),["Me"]);
Test.assertSimilar(whoIsPaying(""), [""]);
Test.assertSimilar(whoIsPaying("I"), ["I"]);
解:
function whoIsPaying(name){
return name.length > 2 ? [name, name.slice(0,2)] : [name.slice(0,2)]
}
[7 kyu] Sum of Cubes
Write a function that takes a positive integer n, sums all the cubed values from 1 to n, and returns that sum.
Assume that the input n will always be a positive integer.
Examples: (Input --> output)
2 --> 9 (sum of the cubes of 1 and 2 is 1 + 8)
3 --> 36 (sum of the cubes of 1, 2, and 3 is 1 + 8 + 27)
解一:
function sumCubes(n){
let arr = []
for (let i = 1; i < n + 1; i++) {
arr.push(Math.pow(i, 3))
}
return arr.reduce((a, b) => a + b)
}
解二:
function sumCubes(n) {
return (n * (n + 1) / 2) ** 2;
}
[8 kyu] CSV representation of array
Create a function that returns the CSV representation of a two-dimensional numeric array.
Example:
input:
[[ 0, 1, 2, 3, 4 ],
[ 10,11,12,13,14 ],
[ 20,21,22,23,24 ],
[ 30,31,32,33,34 ]]
output:
'0,1,2,3,4\n'
+'10,11,12,13,14\n'
+'20,21,22,23,24\n'
+'30,31,32,33,34'
翻譯:
編寫一個函數(shù),該函數(shù)取一個正整數(shù)n,對從1到n的所有三次方值求和,并返回該和。
解:
function toCsvText(array) {
return array.join('\n');
}