Данный отчёт сгенерирован 10.02.2023 18:21:31 UTC.
HTML версия (этот сайт) сгенерирован 10.02.2023 18:21:38 UTC.
Коммит: [bfeb65b9] add automatic zip creation 10.02.2023 18:21:31
HTML версия (этот сайт) сгенерирован 10.02.2023 18:21:38 UTC.
Коммит: [bfeb65b9] add automatic zip creation 10.02.2023 18:21:31
Задача: Цифри цілого числа
10.02.2023 18:21:31
Описание: Зібрати до масиву цифри цілого числа n, починаючи зі старшої. Для цього визначте рекурсивну функцію
digits(n, b), яка приймає число n та основу системи числення b (2 <= b <= 10).
Функція повертає масив цифр (старша цифра на початку масиву), наприклад, digits(6, 2) => [1,1,0].
Не використовувати while, for.
10.02.2023 18:21:31
Решений: 35
10.02.2023 18:21:31
Цифри цілого числа
10.02.2023 18:21:31
function digits(n, b) {
if (n < b) {
return [n];
}
return [...digits(Math.floor(n / b), b), n % b];
}
function digits(n, b) {
if(Math.floor(n / b) == 0){
return [n]
}
return digits(Math.floor(n / b), b).concat([n % b]);
}
function digits(n, b, a) {
let u = a == undefined;
if(u)
a = [];
if(n >= 1)
digits(Math.floor(n/b), b, a);
a.push(n%b);
if(a[0] == 0 && u)
a = a.splice(1);
return a;
}
function digits(n, b) {
let resArr = [];
f(n, b);
function f(n, b){
let tmp = n%b;
n = Math.trunc(n/b);
resArr.unshift(tmp);
if(n != 0){
f(n, b);
}
return resArr;
}
return resArr;
}
function digits(n, b) {
if (n < b) {
return [n];
} else {
let digit = n % b;
let rest = Math.floor(n / b);
return [...digits(rest, b), digit];
}
}
let digits = (n,b) => n.toString(b).split("")
function digits(n, b) {
var arr = [];
function next(n) {
let num = n % b;
arr.push(num);
let next_num = (n - num) / b;
if (next_num > b - 1) {
return next(next_num);
} else {
arr.push(next_num);
}
}
next(n)
return arr.reverse();
}
function digits(n, b){
if (n == 0) return [];
let res = digits((n-n%b)/b, b);
res.push(n%b);
return res;
}
function digits(n, b){
return n.toString(b).split('')
}
function digits(x, b, str = []){
if (!x) return str;
let a = x % b;
str.unshift(a);
x = (x - a) / b;
return digits(x, b, str);
/*
return x.toString(b).split('')
*/
}
function digits(a, b, array = []){
a = a.toString(b);
if(a.toString().length == 0) return array;
array.push(parseInt(a.slice(0,1)));
return digits(a.slice(1, a.length), 10, array);
}
function digits(n,b){
if(n===0){
return []
}
return [...digits((n-n%b)/b,b),n%b]
}
const digits = (n, b) => n.toString(b).split('').map(Number);
function digits(n, b){
if (n< b){
return [n];
}
let l=n%b;
return [...digits((n-l)/b, b), l];
}
function digits(n, base){
if (n){
return digits(Math.floor(n / base), base).concat([n % base])
} else return []
}
function digits(n, b) {
if (n < b) {
return [n];
} else {
return [...digits(Math.floor(n / b), b), n % b];
}
}
function digits(n,b)
{
if(n<=0) return [];
let array = [];
let number = n%b;
n =(n-number)/b
array.push(number);
let w = digits(n,b);
w = w.concat(array);
return w;
}
function digits(n, b){
return n.toString(b).split('')
}
function digits(n,b){
if(n< b){
return [n]
}
let a = digits(parseInt(n/b),b)
a.push(n-parseInt(n/b)*b)
return a
}
function digits(n, b, res = []){
res.push(n % b);
n = Math.floor(n / b);
if(n > 1){
digits(n, b, res);
}else {
n == 0 ? n = n : res.push(n);
res.reverse();
}
return res;
}
function digits(n, b) {
if (n === 0) {
return [];
} else {
return digits(Math.floor(n / b), b).concat(n % b);
}
}
function digits(n, b) {
if (n < b) return [n];
const lastNum = n % b;
return [...digits((n - lastNum) / b, b), lastNum];
}
function digits(n, b) {
let res = [];
function decide(){
if(n == false)
return res;
return(fab(n));
}
function fab(arg){
let digit = arg % b;
res.unshift(digit);
n = (n - digit) / b;
return decide();
}
return decide();
}
function digits(n, b,sum=n,arr=[]){
if (sum< b){
arr.unshift(sum)
return arr }
sum/=b
if (sum%1==0){
arr.unshift(0)
}
else{
arr.unshift((sum*b) - parseInt(sum)*b)
}
return digits(n,b,parseInt(sum),arr)
}
function digits(n, b)
{
let num = n.toString(b)
let res = num.split('')
return res
}
function digits(n,b,res = []){
function digmain(n,b,res){
if(n == 0) return
res.push(n % b)
digmain(Math.floor(n/b),b,res)
}
digmain(n,b,res)
return res.reverse()
}
function digits(x, b, str = ''){
if (x === 0) {
str = str.split("");
str = str.map((el) => +el)
return str;
}
return digits((x - x % b) / b, b, str = x % b + str);
}
function digits(n, b){
return n.toString(b).split('')
}
function digits(n, b) { return (n.toString(b)).split('').map(Number);}
function digits(n,b,result=[]){
if (n< b){
result.push(n)
return result.reverse()
}
result.push(n%b)
return digits(Math.floor(n/b),b,result)
}
function digits(n, b) {
function d(A) {
if (A[0] < b) return A;
let m = A[0];
A[0] = m%b;
A.unshift(Math.floor(m/b));
return d(A);
}
return d([n]);
}
function digits(n, b){
return n.toString(b).split('')
}
function digits(n, b) {
if(n < b)
return [n];
let a = digits((n - n%b)/b, b);
a.push(n % b);
return a;
}
function digits(n,b,result=[]){
if (n< b){
result.push(n)
return result.reverse()
}
result.push(n%b)
return digits(Math.floor(n/b),b,result)
}
function digits(n,b){
if(n===0){
return []
}
return [...digits((n-n%b)/b,b),n%b]
}
if (n < b) {
return [n];
}
return [...digits(Math.floor(n / b), b), n % b];
}
if(Math.floor(n / b) == 0){
return [n]
}
return digits(Math.floor(n / b), b).concat([n % b]);
}
let u = a == undefined;
if(u)
a = [];
if(n >= 1)
digits(Math.floor(n/b), b, a);
a.push(n%b);
if(a[0] == 0 && u)
a = a.splice(1);
return a;
}
let resArr = [];
f(n, b);
function f(n, b){
let tmp = n%b;
n = Math.trunc(n/b);
resArr.unshift(tmp);
if(n != 0){
f(n, b);
}
return resArr;
}
return resArr;
}
if (n < b) {
return [n];
} else {
let digit = n % b;
let rest = Math.floor(n / b);
return [...digits(rest, b), digit];
}
}
var arr = [];
function next(n) {
let num = n % b;
arr.push(num);
let next_num = (n - num) / b;
if (next_num > b - 1) {
return next(next_num);
} else {
arr.push(next_num);
}
}
next(n)
return arr.reverse();
}
if (n == 0) return [];
let res = digits((n-n%b)/b, b);
res.push(n%b);
return res;
}
return n.toString(b).split('')
}
if (!x) return str;
let a = x % b;
str.unshift(a);
x = (x - a) / b;
return digits(x, b, str);
/*
return x.toString(b).split('')
*/
}
a = a.toString(b);
if(a.toString().length == 0) return array;
array.push(parseInt(a.slice(0,1)));
return digits(a.slice(1, a.length), 10, array);
}
if(n===0){
return []
}
return [...digits((n-n%b)/b,b),n%b]
}
if (n< b){
return [n];
}
let l=n%b;
return [...digits((n-l)/b, b), l];
}
if (n){
return digits(Math.floor(n / base), base).concat([n % base])
} else return []
}
if (n < b) {
return [n];
} else {
return [...digits(Math.floor(n / b), b), n % b];
}
}
{
if(n<=0) return [];
let array = [];
let number = n%b;
n =(n-number)/b
array.push(number);
let w = digits(n,b);
w = w.concat(array);
return w;
}
return n.toString(b).split('')
}
if(n< b){
return [n]
}
let a = digits(parseInt(n/b),b)
a.push(n-parseInt(n/b)*b)
return a
}
res.push(n % b);
n = Math.floor(n / b);
if(n > 1){
digits(n, b, res);
}else {
n == 0 ? n = n : res.push(n);
res.reverse();
}
return res;
}
if (n === 0) {
return [];
} else {
return digits(Math.floor(n / b), b).concat(n % b);
}
}
if (n < b) return [n];
const lastNum = n % b;
return [...digits((n - lastNum) / b, b), lastNum];
}
let res = [];
function decide(){
if(n == false)
return res;
return(fab(n));
}
function fab(arg){
let digit = arg % b;
res.unshift(digit);
n = (n - digit) / b;
return decide();
}
return decide();
}
if (sum< b){
arr.unshift(sum)
return arr }
sum/=b
if (sum%1==0){
arr.unshift(0)
}
else{
arr.unshift((sum*b) - parseInt(sum)*b)
}
return digits(n,b,parseInt(sum),arr)
}
{
let num = n.toString(b)
let res = num.split('')
return res
}
function digmain(n,b,res){
if(n == 0) return
res.push(n % b)
digmain(Math.floor(n/b),b,res)
}
digmain(n,b,res)
return res.reverse()
}
if (x === 0) {
str = str.split("");
str = str.map((el) => +el)
return str;
}
return digits((x - x % b) / b, b, str = x % b + str);
}
return n.toString(b).split('')
}
if (n< b){
result.push(n)
return result.reverse()
}
result.push(n%b)
return digits(Math.floor(n/b),b,result)
}
function d(A) {
if (A[0] < b) return A;
let m = A[0];
A[0] = m%b;
A.unshift(Math.floor(m/b));
return d(A);
}
return d([n]);
}
return n.toString(b).split('')
}
if(n < b)
return [n];
let a = digits((n - n%b)/b, b);
a.push(n % b);
return a;
}
if (n< b){
result.push(n)
return result.reverse()
}
result.push(n%b)
return digits(Math.floor(n/b),b,result)
}
if(n===0){
return []
}
return [...digits((n-n%b)/b,b),n%b]
}