Данный отчёт сгенерирован 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
Описание: Объявить функцию setun(n), которая получает целое число n (n >= 0) и
возвращает строку, содержащую запись числа в троичной симметричной системе счисления.
Веса разрядов в этой системе являются степенями тройки, а цифры: i (означает -1), 0 и 1, например, 2 = 1i.
Визначте функцію setun(n), яка отримує ціле число n (n >= 0) та
повертає рядок, що містить запис числа у трійковій симетричній системі числення.
Ваги розрядів у цій системі є ступенями трійки, а цифри: i (означає -1), 0 та 1, наприклад, 2 = 1i.
10.02.2023 18:21:31
Решений: 22
10.02.2023 18:21:31
Трійкова симетрична система
10.02.2023 18:21:31
const DIGITS = "01i";
const BALANCED = [0, 1, -1];
function setun(n) {
let d = [ ];
while(n > 0) {
d.push(DIGITS.charAt(n % 3));
n = (n - BALANCED[n % 3]) / 3;
}
return d.reverse().join('');
}
function setun(n){
let res = [0]
let check
for (let i = 0; i < n; ++i){
check = false
for (let j = res.length - 1; j != -1; j--){
if (res[j] == 'i'){
res[j] = 0
check = false
break
} else if (res[j] == 0){
res[j] = 1
check = false
break
} else {
res[j] = 'i'
check = true
}
}
if (check) res.unshift(1)
}
return res.join('')
}
function setun(x){
let res=''
while(x){
let num=x%3
if(num===2){
res='i'+res
x=(x-num)/3+1
}else{
res=num+res
x=(x-num)/3
}
}
return res
}
function setun(n){
let str ="";
while (n>0)
{
let m = n%3;
b=m;
if(m==2)
b='i';
str = b + str;
n = (n - m) / 3;
if(m==2)
n+=1;
}
return str;
}
function setun(n) {
var res = '';
if(n === 0) return '0';
while(n !== 0) {
var r = n % 3;
if(r === 0) res = '0' + res;
else if(r === 1) res = '1' + res;
else if(r === 2) res = 'i' + res;
n = Math.floor((n+r)/3);
}
return res;
}
function setun(n) {
answ = "";
while (n > 0) {
let rem = n % 3;
n = parseInt(n / 3);
if (rem == 2) {
rem = -1;
n++;
}
answ = (rem == 0 ? "0" : rem == 1 ? "1" : "i") + answ;
}
return answ;
}
function setun(n){
let res = [];
let last = n % 3;
let dev = Math.floor(n / 3);
while(!(dev == 0 && last == 0)){
if(last != 2){
res.push(last)
} else {
res.push('i')
dev = (dev + 1);
}
last = dev % 3
dev = Math.floor(dev/3);
}
return res.reverse().join('')
}
function setun(n) {
result = "";
while (n > 0) {
let dilnik = n % 3;
n = parseInt(n / 3);
if (dilnik == 2) {
dilnik = -1;
n++;
}
result = (dilnik == 0 ? "0" : dilnik == 1 ? "1" : "i") + result;
}
return result;
}
function setun(n) {
let result = n.toString(3).split("");
for (let i = 0; i < result.length; i++) {
result[i] = parseInt(result[i]);
}
for (let i = result.length - 1; i >= 0; i--) {
if (result[i] == 2 || result[i] == 3) {
if (i == 0) {
let temp_result = [];
for (let i = 0; i < result.length; i++) {
temp_result[i + 1] = result[i];
}
result = temp_result;
result[0] = 1;
result[i + 1] = (result[i + 1] == 3) ? 0 : 'i';
return result.join("");
} else {
result[i - 1]++;
}
result[i] = (result[i] == 3) ? 0 : 'i';
}
}
return result;
}
function setun(n){
let res = [];
while(n>0){
let tmp = n%3;
n = Math.trunc(n/3);
if(tmp==2){
res.unshift('i');
n+=1;
}
else{
res.unshift(tmp.toString());
}
}
return res.join('');
}
function setun(n){
let output ='';
while (n > 0) {
a = n % 3;
n = parseInt(n / 3);
if (a > 1) {
output += 'i';
n++;
}
else {
output += a;
}
}
return output.split('').reverse().join('');
}
function setun (n) {
let res = "";
while (n) {
let m = n % 3;
if (m == 2) {
res = "i" + res;
n = (n + 1)/3;
}
else {
res = m + res;
n = (n - m)/3;
}
}
return res;
}
function setun(n){
let str ="";
for(;n>0;)
{
let a = n%3;
q=a;
if(a==2) q='i';
str = q + str;
n = (n - a) / 3;
if(a==2) n+=1;
}
return str;
}
function setun(n) {
let res = "";
while(n > 0) {
let x = n % 3;
n = Math.round(n / 3);
if(x == 2) {
res = "i" + res;
} else {
res = x + res;
}
}
return res;
}
function setun(n){
output =''
while (n > 0) {
a = n % 3;
n = parseInt(n / 3);
if (a > 1) {
output += 'i';
n++;
}
else {
output += a;
}
}
return output.split('').reverse().join('');
}
function setun(n){
const chars = ['0', '1', 'i'];
let result = [];
while (n > 0) {
const rest = n % 3;
result.unshift(chars[rest]);
n = Math.trunc(n / 3);
if (rest === 2) n++;
}
return result.join('');
}
function setun(n)
{
let result = ''
while(n > 0)
{
let num = n % 3
n = parseInt(n/3)
if(num > 1)
{
result = result + 'i'
n++
}
else
{
result = result + num
}
}
return result.split('').reverse().join('')
}
function setun(n){
return xdigits(n);
}
function xdigits(n){
let string = "01i";
let str = "";
while (n){
let a = n % 3;
str = string[a] + str;
n = Math.floor(n / 3);
if(a === 2) n++;
}
return str;
}
function setun(n){
const chars = ['0', '1', 'i'];
let result = [];
while (n > 0) {
const rest = n % 3;
result.unshift(chars[rest]);
n = Math.trunc(n / 3);
if (rest === 2) n++;
}
return result.join('');
}
function setun(n) {
let res = "";
while(n > 0) {
let x = n % 3;
n = Math.round(n / 3);
if(x == 2) {
res = "i" + res;
} else {
res = x + res;
}
}
return res;
}
function setun(n){
const chars = ['0', '1', 'i'];
let result = [];
while (n > 0) {
const rest = n % 3;
result.unshift(chars[rest]);
n = Math.trunc(n / 3);
if (rest === 2) n++;
}
return result.join('');
}
function setun(n){
let res = "";
while (n){
let dif = n % 3;
if (dif == 2){
res = "i" + res;
n = (n + 1)/3;
}
else{
res = dif + res;
n = (n - dif)/3;
}
}
return (res);
}
const BALANCED = [0, 1, -1];
function setun(n) {
let d = [ ];
while(n > 0) {
d.push(DIGITS.charAt(n % 3));
n = (n - BALANCED[n % 3]) / 3;
}
return d.reverse().join('');
}
let res = [0]
let check
for (let i = 0; i < n; ++i){
check = false
for (let j = res.length - 1; j != -1; j--){
if (res[j] == 'i'){
res[j] = 0
check = false
break
} else if (res[j] == 0){
res[j] = 1
check = false
break
} else {
res[j] = 'i'
check = true
}
}
if (check) res.unshift(1)
}
return res.join('')
}
let res=''
while(x){
let num=x%3
if(num===2){
res='i'+res
x=(x-num)/3+1
}else{
res=num+res
x=(x-num)/3
}
}
return res
}
let str ="";
while (n>0)
{
let m = n%3;
b=m;
if(m==2)
b='i';
str = b + str;
n = (n - m) / 3;
if(m==2)
n+=1;
}
return str;
}
var res = '';
if(n === 0) return '0';
while(n !== 0) {
var r = n % 3;
if(r === 0) res = '0' + res;
else if(r === 1) res = '1' + res;
else if(r === 2) res = 'i' + res;
n = Math.floor((n+r)/3);
}
return res;
}
answ = "";
while (n > 0) {
let rem = n % 3;
n = parseInt(n / 3);
if (rem == 2) {
rem = -1;
n++;
}
answ = (rem == 0 ? "0" : rem == 1 ? "1" : "i") + answ;
}
return answ;
}
let res = [];
let last = n % 3;
let dev = Math.floor(n / 3);
while(!(dev == 0 && last == 0)){
if(last != 2){
res.push(last)
} else {
res.push('i')
dev = (dev + 1);
}
last = dev % 3
dev = Math.floor(dev/3);
}
return res.reverse().join('')
}
result = "";
while (n > 0) {
let dilnik = n % 3;
n = parseInt(n / 3);
if (dilnik == 2) {
dilnik = -1;
n++;
}
result = (dilnik == 0 ? "0" : dilnik == 1 ? "1" : "i") + result;
}
return result;
}
let result = n.toString(3).split("");
for (let i = 0; i < result.length; i++) {
result[i] = parseInt(result[i]);
}
for (let i = result.length - 1; i >= 0; i--) {
if (result[i] == 2 || result[i] == 3) {
if (i == 0) {
let temp_result = [];
for (let i = 0; i < result.length; i++) {
temp_result[i + 1] = result[i];
}
result = temp_result;
result[0] = 1;
result[i + 1] = (result[i + 1] == 3) ? 0 : 'i';
return result.join("");
} else {
result[i - 1]++;
}
result[i] = (result[i] == 3) ? 0 : 'i';
}
}
return result;
}
let res = [];
while(n>0){
let tmp = n%3;
n = Math.trunc(n/3);
if(tmp==2){
res.unshift('i');
n+=1;
}
else{
res.unshift(tmp.toString());
}
}
return res.join('');
}
let output ='';
while (n > 0) {
a = n % 3;
n = parseInt(n / 3);
if (a > 1) {
output += 'i';
n++;
}
else {
output += a;
}
}
return output.split('').reverse().join('');
}
let res = "";
while (n) {
let m = n % 3;
if (m == 2) {
res = "i" + res;
n = (n + 1)/3;
}
else {
res = m + res;
n = (n - m)/3;
}
}
return res;
}
let str ="";
for(;n>0;)
{
let a = n%3;
q=a;
if(a==2) q='i';
str = q + str;
n = (n - a) / 3;
if(a==2) n+=1;
}
return str;
}
let res = "";
while(n > 0) {
let x = n % 3;
n = Math.round(n / 3);
if(x == 2) {
res = "i" + res;
} else {
res = x + res;
}
}
return res;
}
output =''
while (n > 0) {
a = n % 3;
n = parseInt(n / 3);
if (a > 1) {
output += 'i';
n++;
}
else {
output += a;
}
}
return output.split('').reverse().join('');
}
const chars = ['0', '1', 'i'];
let result = [];
while (n > 0) {
const rest = n % 3;
result.unshift(chars[rest]);
n = Math.trunc(n / 3);
if (rest === 2) n++;
}
return result.join('');
}
{
let result = ''
while(n > 0)
{
let num = n % 3
n = parseInt(n/3)
if(num > 1)
{
result = result + 'i'
n++
}
else
{
result = result + num
}
}
return result.split('').reverse().join('')
}
return xdigits(n);
}
function xdigits(n){
let string = "01i";
let str = "";
while (n){
let a = n % 3;
str = string[a] + str;
n = Math.floor(n / 3);
if(a === 2) n++;
}
return str;
}
const chars = ['0', '1', 'i'];
let result = [];
while (n > 0) {
const rest = n % 3;
result.unshift(chars[rest]);
n = Math.trunc(n / 3);
if (rest === 2) n++;
}
return result.join('');
}
let res = "";
while(n > 0) {
let x = n % 3;
n = Math.round(n / 3);
if(x == 2) {
res = "i" + res;
} else {
res = x + res;
}
}
return res;
}
const chars = ['0', '1', 'i'];
let result = [];
while (n > 0) {
const rest = n % 3;
result.unshift(chars[rest]);
n = Math.trunc(n / 3);
if (rest === 2) n++;
}
return result.join('');
}
let res = "";
while (n){
let dif = n % 3;
if (dif == 2){
res = "i" + res;
n = (n + 1)/3;
}
else{
res = dif + res;
n = (n - dif)/3;
}
}
return (res);
}