Дано натуральное число. Если в нем есть цифры а и b, то определить, какая из них расположена в числе правее. Если одна или обе эти цифры встречаются в числе несколько раз, то должны быть рассмотрены последние из одинаковых цифр.
Вот код, который имеется, но
<script type="text/javascript">
let s = prompt("Enter number");
let a = prompt("Enter a");
let b = prompt("Enter b");
function index(s, c){
let ic=0;
for (let i=0; i< s.length; i++){
if (s[i]==c)
ic = i;
}
return ic;
}
if (index(s,a)>index(s,b))
alert("a is to the right");
else if (index(s,a)<index(s,b))
alert("b is to the right");
else
alert("a is equal to b");
</script>
function check(x, a, b) {
if (a === b) {
for (; x; x = Math.floor(x / 10)) {
if (x % 10 === a) {
return "equal"
}
}
return "none"
}
for (; x; x = Math.floor(x / 10)) {
if (x % 10 === a) {
for (; x; x = Math.floor(x / 10)) {
if (x % 10 === b) {
return "right"
}
}
return "only a"
}
if (x % 10 === b) {
for (; x; x = Math.floor(x / 10)) {
if (x % 10 === a) {
return "left"
}
}
return "only b"
}
}
return "none"
}
console.log(check(1234567, 5, 5))
console.log(check(1234567, 4, 6))
console.log(check(1234567, 6, 4))
console.log(check(1234554789, 4, 5))
console.log(check(1234567, 3, 9))
console.log(check(1234567, 9, 3))
console.log(check(1234567, 8, 9))
console.log(check(1234567, 8, 8))
.as-console-wrapper.as-console-wrapper { max-height: 100vh }
Он не совсем корректно работает...
Нигде не проверяется, а встречается ли вообще цифра.
prompt = function() {
return (1e9 + Math.random() * 1e9) | 0;
// удобнее будет тестить, не заморачиваясь со вводом.
};
alert = console.log;
/***/
let num = prompt("Enter number");
let a = 4; // prompt("Enter a");
let b = 1; // prompt("Enter b");
console.log(num, a, b);
let a_index = right_index(num, a);
let b_index = right_index(num, b);
if (a === b) {
alert("Цифры равны, индекс: " + a_index);
} else if (a_index == -1) {
alert("Цифра " + a + " не встречается.");
} else if (b_index == -1) {
alert("Цифра " + b + " не встречается.");
} else if (b_index < a_index) {
alert("Цифра a(" + a + ") правее.");
} else if (a_index < b_index) { // можно просто else.
alert("Цифра b(" + b + ") правее.");
}
/***/
function right_index(str, char) {
str = "" + str; // Конвертация в строку, если прилетит число вместо строки.
for (let i = str.length - 1; i >= 0; i--) {
if (str[i] == char) return i;
// Цикл справа налево. Если нашелся - сразу возвращает.
}
return -1; // Не нашлось.
}
Как лучше реализовать функцию combine с сигнатурой (JavaScript)
Подскажите - как я могу получить ширину g и text компонентов, чтобы потом на основе их значений вычислить нужный мне угол поворота для rotate
Всем приветНа страницу из бд загружаются данные (как только пользователь доходит до конца, загружаются еще одни)