Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 62

Найти минимальное число 3 степени, которое удовлетворяет условию

29.03.2016, 15:35. Показов 1385. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане.
Итак, нужно найти минимальное число 3 степени, которое удовлетворяет условию:
{x}^{3} = 2016..... (.... - это остальные цифры числа)
Т.е возведение какого-то числа в 3-ю степень дает число, где первые четыре цифры - это 2016.
Например: 2016895325325.

Думаю, нужно как-то разбить число на цифры, присвоить первым элементам индексы и сравнить с 2 0 1 6.
Но не знаю как это реализовать...

Заранее благодарен.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2016, 15:35
Ответы с готовыми решениями:

Дано действительное число a. Найти первое n, Которая удовлетворяет условию 1+1/2+.+1/n>a
Добрый день знатоки. Помогите пожалуйста программу. Все ли правильно ли зделал. Ну если ошибку найдете то сильно не критикуйте. Все таки я...

Найти наименьшее число, которое удовлетворяет условию
Дано вещественное число a. Найти такое наименьшее n, что 1+1/2+1/3+…+1/n >a. Пункт 3.4 Правил: Спокойствие и хладнокровие помогут вам...

Как найти минимальное время которое удовлетворяет условие?
Входные данные В первой строке заданы два целых числа N и K (1 ≤ N ≤ 100 – количество миссий, 0 ≤ K ≤ 10000 – количество...

11
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
29.03.2016, 15:36
Drillux, ты можешь просто превратить число в строку, взять от строки первые 4 символа и сравнить их.
1
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 62
29.03.2016, 15:37  [ТС]
FaceHoof,

string st;
C#
1
2
3
4
5
6
7
for(int i = 0; i < st.length(); i++)
{
if(st.length < 4)
}
...
}
}
Так?
0
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
29.03.2016, 15:43
Drillux, с помощью Substring, на пример: https://msdn.microsoft.com/ru-... .110).aspx

Добавлено через 2 минуты
Drillux,
C#
1
2
String s = "2016895325325i";
String s2 = s.Substring(0,4);
1
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 62
29.03.2016, 16:24  [ТС]
Ошибка...

string st2 = st1.Substring(0, 4);
Необработанное исключение типа "System.ArgumentOutOfRangeException" в mscorlib.dll

Дополнительные сведения: Индекс и длина должны указывать на позицию в строке.


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 int x = 1;
            string st1;
 
 
            for(int i = 0; i < 7000; i++)
            {
                x = (int)Math.Pow(x, 3);
 
                st1 = x.ToString();
 
                string st2 = st1.Substring(0, 4);
 
                if (st2 == "2016")
                {
                    Console.WriteLine(x);
                }
 
                else
                    x = 1; x++;
                st1 = "";
                st2 = "";
            }
 
            Console.ReadKey();
Добавлено через 13 минут
C#
1
2
3
4
else
                    x = 1; x++;
                st1 = "";
                st2 = "";

Да... так он далеко не уйдет... Как сбросить X к тому состоянию, в котором он был?

Добавлено через 14 минут
А если так? Но тут опять ошибка...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 int x = 1;
            string st1;
 
            int[] mas = new int[7000];
 
            for(int i = 0; i < mas.Length; i++)
            {
                mas[i] = (int)Math.Pow(x, 3);
                x++;
            }
 
            for(int j = 0; j < mas.Length; j++)
            {
                st1 = mas[j].ToString();
 
                string st2 = st1.Substring(0, 4);
 
                if (st2 == "2016")
                {
                    Console.WriteLine(x);
                }
 
                else
                    j++;
                st1 = "";
                st2 = "";
 
 
 
            }
 
            Console.ReadKey();
0
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
29.03.2016, 17:07
Drillux, ошибка возникает так как строка st1 = "1", а ты пытаешься получить четыре символа.
Поставь проверку, что длинна st1 больше или равна четырём.
1
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 62
29.03.2016, 17:42  [ТС]
FaceHoof,
Спасибо. Что-то не то, все-равно... не находит ответ.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  int x = 1;
            string st1, st2 = "";
 
            int[] mas = new int[7000];
 
            for(int i = 0; i < mas.Length; i++)
            {
                mas[i] = (int)Math.Pow(x, 3);
                x++;
            }
 
            for(int j = 0; j < mas.Length; j++)
            {
                st1 = mas[j].ToString();
                if (st2.Length >= 4)
                    st2 = st1.Substring(0, 4);
 
                else
                    j++;
                if (st2 == "2016")
                {
                    Console.WriteLine(mas[j]);
                }
 
                else
                    j++;
                st1 = "";
                st2 = "";
 
 
 
            }
 
            Console.ReadKey();


Плз хэлп!
0
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
29.03.2016, 17:55
Drillux, намного проще будет написать как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int x = 1;
            string st1;
 
 
            for (int i = 0; i < 7000; i++)
            {
                x = (int) Math.Pow(x, 3);
                Console.WriteLine(x); //В определённый момент число просто перестаёт адекватно рассчитываться из-за переполнения памяти...
                st1 = x.ToString();
 
                if (st1.Length >= 4)
                {
                    string st2 = st1.Substring(0, 4);
 
                    if (st2 == "2016")
                    {
                        Console.WriteLine(x);
                    }
                }
                else
                {
                    x++;
                }
            }
Я добавил в код вывод X каждый раз. Посмотрите во что он превращается через несколько проходов цикла.
1
60 / 60 / 54
Регистрация: 19.02.2012
Сообщений: 262
29.03.2016, 18:08
Лучший ответ Сообщение было отмечено Drillux как решение

Решение

Цитата Сообщение от FaceHoof Посмотреть сообщение
x = (int) Math.Pow(x, 3);
не совсем понятно зачем эта строчка. Если использовать BigInteger из System.Numerics, то код следующий:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            BigInteger x = 1;
            string st1;
            for (int i = 0; i < 7000; i++)
            {
                x = BigInteger.Pow(i, 3);
                st1 = x.ToString();
                if (st1.Length >= 4)
                {
                    string st2 = st1.Substring(0, 4);
 
                    if (st2 == "2016")
                    {
                        break;
                    }
                }
                else
                {
                    x++;
                }
            }
            Console.WriteLine(x);
1
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 62
29.03.2016, 18:30  [ТС]
FaceHoof, FaceHoof,
Большое спасибо!
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18279 / 14202 / 5368
Регистрация: 17.03.2014
Сообщений: 28,883
Записей в блоге: 1
29.03.2016, 18:48
Цитата Сообщение от FaceHoof Посмотреть сообщение
Посмотрите во что он превращается через несколько проходов цикла.
Так не надо приводить double к int. У int диапазон значений гораздо меньше. Кроме того для проверки на длину можно сравнить с 1000 и использовать StartsWith вместо Substring.
C#
1
2
3
4
5
6
7
8
9
10
11
12
for (int i=1; i<7000; i++)
{
    double v = Math.Pow(i, 3);
    if (v < 1000) continue;
    
    string s = v.ToString();
    if (s.StartsWith("2016"))
    {
        Console.WriteLine(i);
        break;
    }
}
Добавлено через 18 минут
FaceHoof, на всякий случай напишу чтобы не было обид Я процитировал тебя, но замечания адресованы Drillux т.к. это его код.
1
30.03.2016, 09:24

Не по теме:

OwenGlendower, хорошо, что уточнили, а то правда не понятно к кому обращение)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.03.2016, 09:24
Помогаю со студенческими работами здесь

Найти четырехзначное число, которое удовлетворяет приведённым условиям
Задача 2: Найти четырехзначное число, которое при делении на 133 дает в остатке 125, а при делении на 134 дает в остатке 111 тут тоже...

Вывести каждое значение, которое удовлетворяет заданному условию
Вот есть программный код, нужно чтобы в конце он выводил отдельно каждое значение, которое удовлетворяется условию, а потом только сумму....

Построить на комплексной плоскости множество точек, которое удовлетворяет заданному условию
Привет всем форумчанам, у меня возникли затруднения с такой задачей: Построить на комплексной плоскости множество точек, которое...

Найти минимальное число A, которое делится нацело на N
Признак делимости. Дано натуральное число N (N&lt;1000). Найти минимальное число A, которое делится нацело на N, и в десятичной записи...

Найти минимальное число, большее n, которое нацело делится на 19
Дано число n. Необходимо найти минимальное число, большее n, которое нацело делится на 19. Требуется вывести искомое число.| Используйте...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru