Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 29.12.2018
Сообщений: 26

Сумма цифр в n-й степени "счастливого" числа равна самому числу

06.01.2019, 23:32. Показов 2437. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Троллейбусный билет имеет шестизначный номер. Билет назовем
"счастливым", если сумма первых трех цифр равна сумме последних трех
цифр. Найти номера всех счастливых билетов, у которых сумма первых
или последних трех цифр, будучи возведенной в какую-либо степень равна
номеру счастливого билета.

Я могу написать программу по подсчету счастливых билетов, но условие стоит другое , буду признателен помощи , или просто переводу с C# на Java, заранее спасибо!



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            for (double i = 2.0; i < 28.0; i++)
            {
                double e = 3;
                double ticketNum = Math.Pow(i, e);
                while (ticketNum < 1000000.0)
                {
                    var ticketStr = ticketNum.ToString("000000");
                    if (ticketStr.Substring(0, 3).Select(c => c - 48).Sum() == i && ticketStr.Substring(3).Select(c => c - 48).Sum() == (int)i)
                    {
                        Console.WriteLine(ticketStr);
                    }
                    e++;
                    ticketNum = Math.Pow(i, e);
                }
            }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.01.2019, 23:32
Ответы с готовыми решениями:

Найти натуральные числа сумма цифр каждого из которых в некоторой степени равна самому числу
Доброго времени суток! Необходима помощь со следующей задачей: Найдите все натуральные числа, не превосходящие 10000, сумма цифр каждого из...

Найти все натуральные числа, сумма цифр каждого из которых в некоторой степени равна самому числу
4.Найдите все натуральные числа, не превосходящие 10000, сумма цифр каждого из которых в некоторой степени равна самому числу. ...

Найти все натуральные числа от1 до н сумма , чтобы сумма квадратов цифр числа была равна самому числу
найти все натуральные числа от1 до н сумма , чтобы сумма квадратов цифр числа была равна самому числу

8
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
06.01.2019, 23:47
в поиске 7 тем по словам "счастливый билет"
0
0 / 0 / 0
Регистрация: 29.12.2018
Сообщений: 26
07.01.2019, 07:18  [ТС]
xoraxax, с таким условием "будучи возведенной в какую-либо степень равна
номеру счастливого билета" ничего не нашёл, кроме на C#

Добавлено через 5 часов 49 минут
Вот обычный и простой алгоритм, но у меня ещё есть условие, которое усложняет , а так было бы всё слишком просто

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Useless {
    public static void main(String[] args){
    int sum = 0;
    for(int k = 000001; k <= 999999; k++){
        int number1 = k/100000;
        int number2 = (k%100000)/10000;
        int number3 = (k%10000)/1000;
        int number4 = (k%1000)/100;
        int number5 = (k%100)/10;
        int number6 = k%10;        
 
        if(number1 + number2 + number3 == number4 + number5 + number6){
            sum++;
            }                
        }
    System.out.println( sum + " счастливых билетов.");
    }
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
07.01.2019, 10:16
Цитата Сообщение от ecadrymwf Посмотреть сообщение
обычный и простой алгоритм
Какой-то упоротый алгоритм
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
07.01.2019, 10:58
берешь сумму, в цикле возводишь в степени, пока результат не будет больше или равен числу. Например. Далее выбор степени можно немного оптимизировать, но это другая история.
0
0 / 0 / 0
Регистрация: 29.12.2018
Сообщений: 26
07.01.2019, 11:26  [ТС]
iSmokeJC,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
package sick;
public class Point {
    public static void main(String[] args) {
 
        int luckyTicket = 0;
        for (int ticketNumber = 1; ticketNumber < 1_000_000; ticketNumber = ticketNumber + 1) {
            if (ticketNumber / 100000 + (ticketNumber / 10000) % 10 + (ticketNumber / 1000) % 10 == (ticketNumber / 100) % 10 + (ticketNumber / 10) % 10 + ticketNumber % 10) {
                luckyTicket = luckyTicket + 1;
            }
        }
        System.out.println("Количество счастливых билетов в серии" + " — " + luckyTicket);
    }
}
Такой ещё есть, но этот я уже украл, и он как-то сложнее для меня в понимание
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
07.01.2019, 11:53
Лучший ответ Сообщение было отмечено ecadrymwf как решение

Решение

ecadrymwf, имхо, проще представить число как массив символов и посчитать, счастливое ли оно. Но суть не в этом. Нужно сумму трех цифр каждого счастливого числа рекурсивно возводить в следующую степень и сравнивать с исходным числом на равенство. Очень долго и топорно как-то. Подними вопрос в разделе алгоритмов, мож там чего подскажут. Ну а реализация - дело десятое...

Добавлено через 6 минут
Цитата Сообщение от iSmokeJC Посмотреть сообщение
представить число как массив символов и посчитать
Java
1
2
3
4
5
6
7
public boolean isLucky(int x) {
        return (String.valueOf(x / 1000).chars()
                .map(c -> c - '0')
                .sum() == String.valueOf(x % 1000).chars()
                .map(c -> c - '0')
                .sum());
    }
2
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
07.01.2019, 19:29
если память не изметяет, то так:

https://www.cyberforum.ru/cgi-bin/latex.cgi?{summ}^{x} = L;<br />
x = ln(L)/ln(summ)

x - целое, как я понял.
0
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
08.01.2019, 04:00
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String[] args) {
 
        final int N = 1_000_000;
 
        IntFunction<IntStream> variants_ticket =
                n -> n > 1 ? IntStream.iterate(1, i -> i * n).takeWhile(i -> i < N) : IntStream.of(n);
 
        IntUnaryOperator sum = n ->
                Integer.toString(n).chars().map(c -> c - 0x30).sum();
 
        System.out.println(
                IntStream.range(0, 28)
                        .flatMap(n -> variants_ticket.apply(n).filter(i -> sum.applyAsInt(i / 1000) == n && sum.applyAsInt(i % 1000) == n))
                        .mapToObj(n -> String.format("%06d", n))
                        .collect(joining(", "))
        );
 
    }
Если сумма правой и левой стороны - 2, то билеты 000001, 000002, 000004, ...., 065536, .... - 20 вариантов до миллиона, для 3-ки меньше и т.д., 27 - максимальная сумма для одной стороны. Итого, не больше 500 вариантов.
Останется только посмотреть, равны ли правые и левые суммы и равны ли эти суммы основанию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2019, 04:00
Помогаю со студенческими работами здесь

Вывести числа такие что сумма цифр возведенных в степень количества цифр равна самому числу
Вывести все числа, в которых сумма цифр, возведенных в степень количества цифр равна самому числу. Например, число 8208, имеет четыре...

Найти все числа сумма цифр которых, возведенных в n-ю степень равна самому числу
Найти все двух, трех и четырех разрядные числа, сумма цифр которых, возведенных в n-ю степень( для двух разрядных чисел n=2, для трех...

Найти все натуральные числа от 1 до n, сумма квадратов цифр которых равна самому числу
Найти все натуральные числа от 1 до n, сумма квадратов цифр которых равна самому числу Например дано число abc из чего следует что...

Найти все трехзначные числа Армстронга: сумма кубов цифр равна самому числу
В чем моя ошибка? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { int a,b,c,i; for(i=100;i&lt;1000;i++); { ...

Найти все трехзначные числа Армстронга- сумма кубов цифр которых равна самому числу
Здравствуйте , прошу помочь найти ошибку, цикл либо не прекращается, либо слишком долго обрабатывает информацию. Я начинающий, так что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru