Перевод чисел из десятичной системы счисления в любую другую - C (СИ)
Формулировка задачи:
Считать с клавиатуры целое неотрицательное число в десятичной системе счисления и основание новой системы счисления (целое число от 2 до 10).
Вывести в консоль число, записанное в новой системе счисления.
Задача решается без массивов.
Вот моя програма она работает медленно. Как сделать быстрее без масивов
#include <stdio.h> void print(int number, int step, int base) { if ( step != 0 ) { if ( step > number ) { printf("0"); return print(number, step / base, base); } else { printf("%d", number / step); return print(number % step, step / base, base); } } } int main() { int base, number, step; scanf("%d%d", &number, &base); for ( step = 1; step <= number; ) { step *= base; } print(number, step / base, base); printf("\n"); scanf("\n"); return 0; }
Решение задачи: «Перевод чисел из десятичной системы счисления в любую другую»
textual
Листинг программы
#include <conio.h> int Input() { char c; int s=0; while (1) { c=getch(); if (c==13) return s; if ((c>='0') && (c<='9')) { printf("%c",c); s=s*10+(c-'0'); } } } void Print(int n, int p) { if (n == 0) return; Print(n/p,p); printf("%d",n%p); } int main(int argc, char *argv[]) { int n,p; printf("n="); n=Input(); printf("\np="); p=Input(); printf("\n"); Print(n,p); printf("\n"); system("PAUSE"); return EXIT_SUCCESS; }
Объяснение кода листинга программы
- В функции
main
программа запрашивает у пользователя два числа (n и p) в десятичной системе счисления, затем передает их в функциюPrint
. - Функция
Print
рекурсивно выводит число n в системе счисления с основанием p. - В функции
Input
программа запрашивает у пользователя ввод, пока он не нажмет клавишу Enter (не введет символ новой строки). - Каждое введенное число (или символ) проверяется в функции
Input
на соответствие допустимому диапазону для десятичной системы счисления. - Если введенный символ является числом от 0 до 9, он добавляется к результату и умножается на 10 в функции
Input
. - Если введенный символ является символом новой строки, функция
Input
возвращает результат. - В функции
main
программа вызывает функциюInput
для ввода двух чисел, затем передает эти числа в функциюPrint
. - Программа выводит результат в консоль, затем ожидает, пока пользователь не нажмет клавишу Enter, прежде чем завершиться.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д