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

Определить номер цифры «8» в числе, считая от конца числа

15.10.2020, 13:41. Показов 4452. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано натуральное число. Определить номер цифры «8»
в нем, считая от конца числа. Если такой цифры нет, ответом
должно быть число 0, если таких цифр в числе несколько —
должен быть определен номер самой левой из них. Пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2020, 13:41
Ответы с готовыми решениями:

Напишите пожалуйста программу в windows form
Дан массив работников фирмы ФИО и дата поступления на работу.Во второй массив выписать только тех из них,которые на сегодняшний день...

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

Пожалуйста напишите программу на C#, применив оператор с постусловием ДО
var a,i,j,s:integer; begin writeln('Введите a:'); readln(a); for i:=100 to 999 do begin j:=i; s:=0; //обнуление while...

21
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
15.10.2020, 15:43
Считаем справа, а в ответе нужна левая...
0
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
15.10.2020, 16:27
Enifan, ну у числа может быть два конца, если вы понимаете о чем я говорю
Миниатюры
Определить номер цифры «8» в числе, считая от конца числа  
0
 Аватар для Kyra90
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
15.10.2020, 16:42
Nikita ahha,

C#
1
2
3
4
5
6
            int x = 1845225682;
            string s = x.ToString();
            int result = s.IndexOf("8");
            if (result == -1) result = s.Length;
            Console.WriteLine(s.Length-result);
            Console.ReadKey();
Добавлено через 3 минуты
1845225682 покажет эту восьмерку

C#
1
2
3
4
5
6
           int x = 1845225872;
            string s = x.ToString();
            int result = s.LastIndexOf("8");
            if (result == -1) result = s.Length;
            Console.WriteLine(s.Length-result);
            Console.ReadKey();
1845225872 покажет эту
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
15.10.2020, 17:41
Цитата Сообщение от Shut913 Посмотреть сообщение
ну у числа может быть два конца
С философской точки зрения конца может и не быть.
Как по мне у числа есть начало и конец, это хотя бы логично
0
Жесток & Наивен
 Аватар для sanec38
483 / 188 / 91
Регистрация: 02.02.2017
Сообщений: 427
16.10.2020, 09:27
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        private static void Main(string[] args)
        {
            Console.WriteLine("Введите число");
            var n = Convert.ToInt32(Console.ReadLine());
            var index = 0;
            var count = 0;
            do
            {
                if(n%10==8)
                {
                    index = count;
                }
                count++;
            } while((n/=10)!=0);
            Console.WriteLine(index);            
            Console.ReadLine();
        }
0
 Аватар для access_now
66 / 48 / 21
Регистрация: 14.08.2020
Сообщений: 133
16.10.2020, 10:04
sanec38, самую левую восьмерку

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
           var n = 1845225872;
            var index = 0;
            var length = 0;
            while(n > 0)
            {
                if(n%10==8)
                { 
                    index = length;
                } 
                n /= 10;
                length++;                    
            };
            Console.WriteLine(length - index-1);
0
16.10.2020, 12:29

Не по теме:

Цитата Сообщение от Shut913 Посмотреть сообщение
ну у числа может быть два конца
покажите любому человеку число, и спросите у него, где начало. Я думаю большинство людей укажет на левую часть числа

0
sleep
 Аватар для I can
4935 / 4609 / 841
Регистрация: 13.04.2015
Сообщений: 9,781
16.10.2020, 12:59
Мой вариант
C#
1
2
3
4
5
6
7
8
9
10
        static void Main(string[] args)
         {long N=997896576896 ;
           int n=0, i=0;
           while (N>10)
              { i++;
              if (N % 10 == 8)
                n = i; 
                N /= 10;}
           Console.WriteLine(n.ToString());
            Console.ReadKey();}
0
628 / 392 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
16.10.2020, 13:01
I can, Вот всегда было интересно, как оптимальнее решать подобные задачи. Работая с делением, или переводить число в строку.
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
16.10.2020, 13:09
Цитата Сообщение от Pilarentes Посмотреть сообщение
Работая с делением, или переводить число в строку.
Лично я бы в строку не переводил, так как есть понятие "интернирование строк". Данная строка будет висеть в памяти до конца работы программы.
Если программа рассчитана на 10 строк, то без разницы.
1
sleep
 Аватар для I can
4935 / 4609 / 841
Регистрация: 13.04.2015
Сообщений: 9,781
16.10.2020, 13:17
Цитата Сообщение от Pilarentes Посмотреть сообщение
Работая с делением, или переводить число в строку.
Конечно с делением. Много раз уже проверено.

Добавлено через 6 минут
Цитата Сообщение от I can Посмотреть сообщение
(N>10)
Как говорил мой товарищ, когда накосячит сам, "мы лоханулись"
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16139 / 11263 / 2888
Регистрация: 21.04.2018
Сообщений: 33,105
Записей в блоге: 2
16.10.2020, 13:20
Цитата Сообщение от Pilarentes Посмотреть сообщение
как оптимальнее решать подобные задачи. Работая с делением, или переводить число в строку.
Перевод в строку это не некая магия, а метод содержащий в себе множество операций часть из которых будет идентична делению.
Поэтому, если "оптимальнее" - это скорость, то конечно, делением. И разница, скорее всего, будет кратная.
Если "оптимальнее" - это проще в написании, то зависит от того кто пишет. Можно и в одну строку написать:
C#
1
2
long n=997896576896;
int ind = n.ToString().SkipWhile(ch => ch != '8').Count();
1
Жесток & Наивен
 Аватар для sanec38
483 / 188 / 91
Регистрация: 02.02.2017
Сообщений: 427
16.10.2020, 20:47
Цитата Сообщение от Nikita ahha Посмотреть сообщение
номер цифры «8»
в нем, считая от конца числа
Цитата Сообщение от access_now Посмотреть сообщение
самую левую восьмерку
я считал от конца, где последний элемент по нормальному стал нулевым, поэтому я и нахожу левый. Я просто перевернул нумерацию, и подумав что и ответ должен быть 'в новой нумерации', и это требования задачи. Ну я вполне могу и ошибаться, в понимании формулировки.
0
16.10.2020, 20:55

Не по теме:

sanec38, увидел, подумал лучше на это обратить внимание. А то когда код пишешь, вроде стараешься, а никто не поправляет тоже обидна ...

0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16139 / 11263 / 2888
Регистрация: 21.04.2018
Сообщений: 33,105
Записей в блоге: 2
16.10.2020, 20:56
Цитата Сообщение от sanec38 Посмотреть сообщение
Ну я вполне могу и ошибаться, в понимании формулировки.
Если брать не "программистское понимание", а обычное.
У любого слова, в том числе числа, слева - начало, справа - конец.
Счёт начинается с единицы, а не как индексы в C# с нуля.

Поэтому для числа "997896576896" правильный ответ - 9.
1
 Аватар для access_now
66 / 48 / 21
Регистрация: 14.08.2020
Сообщений: 133
16.10.2020, 21:05
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Поэтому для числа "997896576896" правильный ответ - 9.
Хоть и не "программистское понимание", а обычное. слева - начало, справа - конец.
Цитата Сообщение от Nikita ahha Посмотреть сообщение
должен быть определен номер самой левой из них.
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
16.10.2020, 21:11
Цитата Сообщение от access_now Посмотреть сообщение
слева - начало, справа - конец
Арабы или евреи не согласятся
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16139 / 11263 / 2888
Регистрация: 21.04.2018
Сообщений: 33,105
Записей в блоге: 2
16.10.2020, 23:20
Цитата Сообщение от randok Посмотреть сообщение
Арабы или евреи не согласятся
Ну когда у нас на форуме появится арабский или иврит - вернёмся к этой теме.
0
17.10.2020, 04:02

Не по теме:

Nikita ahha, Когда задачу преподавателю\учителю будете сдавать, можете написать какой из вариантов трактовок был ближе к истине, если не сложно.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2020, 04:02
Помогаю со студенческими работами здесь

Пожалуйста напишите программу на C#, применив оператор выбора
var y: integer; begin readln(y); if y/4=int(y/4) then begin if (y/100=int(y/100))and(y/400<>int(y/400)) then writeln('Не...

Напишите пожалуйста графическую программу, с обычными фигурами.
Помогите с программой в с#(windows form) только начал изучать, а уже требуют проект. Напишите пожалуйста графическую программу, с обычными...

Напишите пожалуйста программу на C#
Телефонный справочник, надо сделать через класс.

Напишите пожалуйста программу в С++
Случайным образом формируются координаты X и Y 100 точек. Диапазон значений координат от -150 до 150. Для каждой четверти напечатать точки...

напишите программу пожалуйста
Заполните файл последовательного доступа f целыми числами,полученными с помощью генератора случайных чисел. Получить в файле g все...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru