0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
1

Ввести целое число N, вывести его в 3-ичной системе счисления

14.09.2016, 21:21. Показов 2835. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести целое число N, вывести его в 3-ичной системе счисления.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2016, 21:21
Ответы с готовыми решениями:

Ввести целое число N, вывести его в 8-ричной системе счисления
Будьте добры, напишите программу "Ввести целое число N, вывести его в 8-ричной системе счисления."

Ввести целое число N, вывести его в 3-ичной системе счисления
Ввести целое число N, вывести его в 3-ичной системе счисления.

Ввести целое число N, вывести его в 8-ричной системе счисления
Доброго времени суток. Помогите пожалуйста написать программу - "Ввести целое число N, вывести его...

Ввести число в 10-чной системе счисления, вывести его на экран в 16-чной системе счисления
Вывести на экран число представляющие в 16-чной системе счисления. Число вводится в 10-чной с/с....

17
Диссидент
Эксперт C
27709 / 17325 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
14.09.2016, 22:15 2
Кристина 1998, Можно поинтересоваться, в чем именно проблема?
Ввести число можете?
Знаете как переводится в другую систему на бумажке?
Если знаете, то не знаете, как это записать на языке Си?
Можете набросать хотя бы скелет программы?
Допустимо ли использование рекурсии?
0
Заблокирован
14.09.2016, 22:15 3
как-то так
C
1
2
3
4
5
6
7
int n;
char *p,s[20]="";
 
printf("n: ");
scanf("%d",&n);
for(p=s+19; n; n/=3) *--p='0'+n%3;
printf("%s\n",p);
0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
14.09.2016, 22:35  [ТС] 4
Проблема в том, что я понимаю , как на бумажке это записать.
Но я не понимаю , как написать программу...
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12703 / 7534 / 1761
Регистрация: 25.07.2009
Сообщений: 13,871
14.09.2016, 23:22 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
void base3(unsigned n) {
    if ( n > 2 )
        base3(n / 3);
    printf("%d", n % 3);
}
 
int main(void) {
    unsigned n;
    
    while ( printf("\nN = ") && scanf("%u", &n) == 1 )
        base3(n);
    
    return 0;
}
2
Диссидент
Эксперт C
27709 / 17325 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
14.09.2016, 23:26 6
Один из способов такой
C
1
2
3
int res3, p;
for(res3=0, p=1; N; N/=3, p*=10)
  res3 += p*(N%3);
К сожалению, этот способ подходит только для оснований <=10
Естественный универсальный способ (как на бумажке) дает цифры в обратном порядке, и их надо переставлять (реверсировать). Но использование рекурсии дает сразу нужный порядок цифр.

Добавлено через 3 минуты
Что и продемонстрировал уважаемый easybudda,
1
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
15.09.2016, 19:37  [ТС] 7
Спасибо огромное!

Добавлено через 2 минуты
А что означает void base3?
0
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 31
15.09.2016, 19:45 8
Цитата Сообщение от Кристина 1998 Посмотреть сообщение
А что означает void base3?
Функция с именем "base3" и имеющая тип возвращаемого значения "void".
0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
15.09.2016, 19:46  [ТС] 9
unsigned и можно использовать char?
0
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 31
15.09.2016, 21:14 10
Цитата Сообщение от Кристина 1998 Посмотреть сообщение
unsigned и можно использовать char?
unsigned - значит беззнаковый тип. Используется для хранения неотрицательных целочисленных значений, например unsigned short, unsigned int и пр.

char используется для хранения символов.
0
Диссидент
Эксперт C
27709 / 17325 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
16.09.2016, 10:32 11
Цитата Сообщение от Соляристик Посмотреть сообщение
char используется для хранения символов.
unsigned char можно использовать для хранения небольших неотрицательных чисел. От 0 до 255.
Также как signed char использовать для хранения небольших целых чисел
0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
17.09.2016, 22:29  [ТС] 12
Цитата Сообщение от easybudda Посмотреть сообщение
1
скажите, пожалуйста, а как мне вывести программу через цикл с while?
0
Диссидент
Эксперт C
27709 / 17325 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
17.09.2016, 22:35 13
C
1
2
3
4
5
int res3=0, p=1;
while( N) {
  res3 += p*(N%3);
  N/=3, p*=10;
}
Циклы while и for взаимозаменяемы
0
269 / 253 / 186
Регистрация: 28.10.2015
Сообщений: 723
17.09.2016, 23:13 14
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdio.h"
 
#define push(s, n) (*(s)++ = (n))
#define pop(s) (*--(s))
 
int main(void)
{
    int stack[20];
    int* s = stack;
    int n = 2000000000;
    do
    {
        push(s, n % 3);
        n /= 3;
    } while (n != 0);
    while (s > stack)
    {
        printf("%d", pop(s));
    }
    putchar('\n');
    return 0;
}
0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
19.09.2016, 17:51  [ТС] 15
[quote="Байт;9551181"]что такое res3?

Добавлено через 57 секунд
[quote="ata;9551276"]я не понимаю...А как можно проще через цикл и если написать с остатком?
0
Диссидент
Эксперт C
27709 / 17325 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
19.09.2016, 19:15 16
Цитата Сообщение от Кристина 1998 Посмотреть сообщение
что такое res3?
Целая переменная. (int res3). Я сам ее придумал. Сам и имя дал. Можно дать другое.
Цитата Сообщение от Кристина 1998 Посмотреть сообщение
я не понимаю..
Ну, тут видимо уже сложно что-то поделать.
0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
19.09.2016, 20:02  [ТС] 17
Цитата Сообщение от Байт Посмотреть сообщение
Ну, тут видимо уже сложно что-то поделать.
Си это не мое?
0
2672 / 2247 / 241
Регистрация: 03.07.2012
Сообщений: 8,179
Записей в блоге: 1
20.09.2016, 13:36 18
Цитата Сообщение от Кристина 1998 Посмотреть сообщение
Си это не мое?
Вот тут в точку. И не только Си...
1
20.09.2016, 13:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2016, 13:36
Помогаю со студенческими работами здесь

Дано целое число X в десятичной системе счисления. Выведите запись числа X в восьмеричной системе счисления
Почему настоящие программисты путают католическое Рождестово и Halloween? Потому что 25 DEC = 31...

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

Определить целое неотрицательное число по его строковому представлению S в 16-ричной системе счисления
Очень прошуууу помочь .Param47. Описать функцию HexToDec(S) целого типа, определяющую целое...

Введите целое число в двоичной системе счисления и выведите его десятичный эквивалент
Введите целое число в двоичной системе счисления и выведите его десятичный эквивалент. ...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru