Приветствую всех.
Проблема состоит в том,что я только только осваивающий паскаль,уж школа такая попалась,куда деваться и информатика на примитивном уровне.Придя в институт,надеялся расширить свой кругозор,но увы,напоролся на такую проблему-преподаватель.По идее он должен дать какие то навыки,чтобы я смог дальше сам,но увы,этого не произошло,а что имеем-дал задания и сказал как хочешь и не мне одному,а всей группе,чем вызвал явное недоумение.Переходить на другой факультет(как я вычитал на страницах данного раздела) или институт проблемно.Так что прошу проявить капельку сострадания,увы,не всем нам везет в нашей жизни и решить мне пару задач.Учить не ленюсь,но вот с нуля и такое сразу не под силу.
Пусть дано натурально число n (запись числа n в десятичной системе есть akak-1ak-2K…a0). Составьте программу для ответа на вопрос: Сколько цифр в числе n? (Например N=123 Ответ К=3)
Пусть даны целое число N, символы s1, s2, …, sn. Преобразуйте последовательность s1, s2, …, sn, удалив каждый символ звездочки (*) и повторив каждый символ, отличный от звездочки.
43 Цикл while. Подсчет количества цифр до определенного символа при помощи Python
Как добавить данные в начало файла (написать программу)
как говорится,кто чем может помогите.
Последний раз редактировалось immor; 14.02.2009 в 21:41 .
Источник: www.programmersforum.ru
Сколько цифр в числе
Собственно, проверил и получил такие вот результаты (3 варианта вычисления: логарифм, деление, сдвиг):
- Логарифм работает за константное время и, согласен, не так уж быстро, как хотелось бы
- Сдвиг и деление работают линейно от длины числа, причем сдвиг примерно в пять раз быстрее деления.
- На десятизначных числах на long(это как раз порядка Integer.MAX_VALUE) логарифм так же быстр, как и сдвиг.
Вот, теперь можно почти точно сказать, что логарифм следует использовать только для long, и то, лишь с уверенностью, что будут меряться действительно длинные числа, больше десяти знаков.
Вот тестилка, можно и самим проверить, кто желает. На вход подается количество итераций.
import sun.misc.Perf; public class IntegerMeter < static Perf perf = Perf.getPerf(); static long frequency = perf.highResFrequency(); static int countDigits_A(long number)< int result = 0; for(long match = 0L; number >match; ++result) match = (match static int countDigits_B(long number) < return (int) Math.ceil(Math.log10(number + 0.5)); >static int countDigits_C(long number) < int result = 0; while(number != 0L)< ++result; number /= 10; >return result; > static int countDigits_A(int number) < int result = 0; for(int match = 0; number >match; ++result) match = (match static int countDigits_B(int number) < return (int) Math.ceil(Math.log10(number + 0.5)); >static int countDigits_C(int number) < int result = 0; while(number != 0)< ++result; number /= 10; >return result; > private static double test(Runnable runnable, int count) < long begin = perf.highResCounter(); while(count— >0) runnable.run(); long end = perf.highResCounter(); return (double)(end — begin) / frequency; > public static void main(String[] args) < final long candidateLong = 5464456734L; final int candidateInt = (int) candidateLong; int count = Integer.parseInt(args[0]); double testLong_A = test(new Runnable()< public void run()< countDigits_A(candidateLong); >>, count); double testLong_B = test(new Runnable() < public void run()< countDigits_B(candidateLong); >>, count); double testLong_C = test(new Runnable() < public void run()< countDigits_C(candidateLong); >>, count); double testInt_A = test(new Runnable() < public void run()< countDigits_A(candidateInt); >>, count); double testInt_B = test(new Runnable() < public void run()< countDigits_B(candidateInt); >>, count); double testInt_C = test(new Runnable() < public void run()< countDigits_C(candidateInt); >>, count); System.out.printf(«%.5ft%.5ft%.5frn%.5ft%.5ft%.5frn», testLong_A, testLong_B, testLong_C, testInt_A, testInt_B, testInt_C); > >
Источник: ru.stackoverflow.com
Решение задачи «Количество цифр» по теме «Метод подсчета. Сортировка подсчетом Python»
Python. Решение задач на обработку целых чисел
В данной теме приведены примеры решения наиболее распространенных задач, связанных с обработкой чисел. Изучение темы предполагает базовые знания по основам языка Python, а именно, использование средств ввода/вывода, циклов, списков, функций и тому подобное.
Поиск на других ресурсах:
1. Выделить все цифры целого числа и представить их в виде списка
# Ввод числа n = input(«n color: #ff0000;»># Выделить все цифры числа и представить их в виде списка # Результирующий список L = [] # Цикл формирования списка while n>0: number = n%10 # взять последнюю цифру L = [number] + L # прибавить цифру в список n = n/10 # убрать последнюю цифру из числа print(«L color: #333300;»>⇑
2. Определить указанную цифру в целом числе
2.1. Позиция указывается слева
В примере определяется заданная цифра слева в заданном числе.
# Задача. Выделить цифру в числе по ее позиции # 1. Ввод числа n = input(«n color: #ff0000;»># 2. Ввод позиции (начинается с 0) pos = input(«pos color: #ff0000;»># 3. Сформировать список цифр числа L = [] # результирующий список # Цикл формирования списка L while n>0: L = [n%10] + L # взять последнюю цифру и прибавить цифру к списку n = n/10 # убрать последнюю цифру из числа # 4. Получить цифру num = L[pos] # 5. Вывести искомую цифру print(«num color: #800080;»>print(«L color: #333300;»>⇑
2.2. Позиция задается справа
Если задан номер позиции справа (начиная с 0), то в предыдущем примере 2.1 строку
. # 4. Получить цифру num = L[pos] .
нужно заменить на строку
# 4. Получить цифру по смещению от конца num = L[len(L) — pos — 1]
3. Вычислить сумму цифр целого числа
# Задача. Вычислить сумму цифр числа # 1. Ввод числа n = input ( «n color: #ff0000;»># 2. Вычислить сумму summ = 0 # Вычисляемая сумма # Цикл выделения цифр из числа и вычисление суммы while n>0: summ = summ + n%10 # взять последнюю цифру и прибавить цифру к сумме n = n/10 # убрать последнюю цифру из числа # 3. Вывести сумму print ( «sum color: #333300;»>⇑
4. Инвертировать целое число (1234 => 4321)
Инвертировать число означает, что нужно получить новое число, которое читается как исходное число от конца до начала.
# Задача. Ивертировать число import math # 1. Ввод числа n = input ( «n color: #ff0000;»># 2. Создание нового инвертированного числа # 2.1. Сначала нужно вычислить количество цифр (порядок) в числе k = 0 n2 = n while n2>0: k = k+1 # увеличить счетчик количества цифр на 1 n2 = n2/10 # Убрать цифру # 2.2. Цикл выделения цифр из числа n и создание инвертированного числа while n>0: # взять последнюю цифру last = n%10 # уменьшить порядок числа k = k-1 # умножить полученную цифру на 10^k # и прибавить ее к новому числу n2 = n2 + int (last*math.pow(10, k)) # n2 — новое число # убрать последнюю цифру из числа n = n/10 # 3. Вывести новое число print ( «n2 color: #333300;»>⇑
5. Функция GetNumCount() . Определить количество цифр в числе
Реализовать функцию GetNumCount() , которая определяет количество цифр в целом числе. Функция получает параметром исходное число.
# Задача. Определить количество цифр в числе import math # Функция GetNumCount() — определить количество цифр в числе def GetNumCount (n): k = 0 # k — результат while n>0: k = k+1 n = n/10 return k # Демонстрация работы функции # Ввод числа n = input ( «n color: #ff0000;»># Вызов функции k = GetNumCount(n) print ( «k color: #333300;»>⇑
6. Функция GetMaxNum() . Определить максимальную цифру в числе
В заданном целом числе n (n>0) нужно определить максимальную цифру. Например, если есть число 2883345, то максимальная цифра будет 8.
# Задача. Определить максимальную цифру в числе import math # Функция GetMaxNum() — определить максимальную цифру в числе def GetMaxNum (n): # получить последнюю цифру числа Max = n%10 while n>0: n = n/10 # уменьшить число if Max < n%10: # сравнить последнюю цифру с максимумом Max = n%10 return Max # Демонстрация работы функции # Ввод числа n = input ( «n color: #ff0000;»># Вызов функции num = GetMaxNum(n) print ( «num color: #333300;»>⇑
7. Функция GetMinNum() . Определить минимальную цифру в числе
Задача решается так же как и в предыдущем примере.
# Задача. Определить минимальную цифру в числе import math # Функция GetMinNum() — определить минимальную цифру в числе def GetMinNum (n): # получить последнюю цифру числа Min = n%10 while n>0: n = n/10 # уменьшить число if Min > n%10: # сравнить последнюю цифру с минимумом Min = n%10 return Min # Демонстрация работы функции # Ввод числа n = input ( «n color: #ff0000;»># Вызов функции num = GetMinNum(n) print ( «num color: #333300;»>⇑
Связанные темы
Источник: www.bestprog.net