E
ermackprogramis
Нужно перевести с десятичной в эти 3 системы,но с рекурсией у меня не выходит. Как его сделать?Я в этом деле новенький,помогите пожалуйста
B правой части каждого сообщения есть стрелки ⇧ и ⇩. Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок ✔ в правой части сообщения.
Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
Новенький в рекурсии или в системе счисления? Сам пытался что-нибудь делать? Если да - то покажи, а мы уже укажем на недостатки.Я в этом деле новенький,помогите пожалуйста
Показывай что пробовал. Посмотрим что можно зделать.пробовал через цыкл FOR, что то получилось но сказали что через цыкл нельзя, помоги если не сложно
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#pragma hdrstop
//------------------------------------------------
#pragma argsused
int CharToInt(char alpha)
{
if(alpha<58 )
return alpha - 48;
else
return alpha - 55;
}
int ConvertToDec(char *input , int sinp )
{
int sum = 0;
int pow = 1;
for(int i = strlen(input)-1; i>=0; i--)
{
sum+=CharToInt(input[i]) * pow;
pow*=sinp;
}
return sum;
}
char *convertX(int input, int sout, char *out)
{
while(input!=0)
{
float j = input%sout;
input/=sout;
out--;
if(j<10)
*out = 48 + j;
else
*out = 55 + j;
}
return out;
}
int main(int argc, char* argv[])
{
printf("Enter the number: " );
char input[32] = "";
scanf("%s", &input);
printf("\nEnter from what: ");
int sinp;
scanf("%i", &sinp);
printf("\nEnter to where: ");
int sout;
scanf("%i", &sout);
printf("\n\n= ");
char output[32];
output[31] = 0;
printf("%s", convertX(ConvertToDec(input, sinp), sout, output+31));
//printf("\n\nNazsmite ljubuju klavisu...");
//getch();
system("pause");
return 0;
}
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int dec, bin=0, j;
cin >> dec;
for(j=0; dec>0; j++)
{
bin+=(dec%2)*pow(10.0,j);
dec/=2;
}
cout <<bin<< endl;
system("pause");
return 0;
}
#include <iostream.h>
void to_bin( char *p, int v, int c )
{
p[c - 1] = v & 1 ? '1' : '0';
v >>= 1;
if ( v > 0 ) to_bin( p, v, --c );
}
int main()
{
int v;
char p[33];
cin >> v;
memset( p, ' ', 32 );
p[32] = '\0';
to_bin( p, v, 32 );
cout << p;
return 0;
}
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const char *numset = "0123456789ABCDEF";
void to_bin( char *p, int v, int c )
{
p[c - 1] = v & 1 ? '1' : '0';
v >>= 1;
if ( v > 0 ) to_bin( p, v, --c );
}
void _toOther(int dec, int m, char *str)
{
str[0] = numset[dec % m];
if (dec >= 16)
_toOther(dec / m, m, str + 1);
else
str[1] = 0;
}
void toOther(int dec, int m, char *str)
{
_toOther(dec, m, str);
int l = strlen(str);
for (int i = 0; i < l / 2; i++)
swap(str[i], str[l - i - 1]);
}
int main(int argc, char argv)
{
int dec;
char str[1000];
scanf("%d", &dec);
toOther(dec, 16, str);
printf("%s\n", str);
toOther(dec, 8, str);
printf("%s\n", str);
char p[33];
memset( p, ' ', 32 );
p[32] = '\0';
to_bin( p, dec, 32 );
cout << p;
system("pause");
}
#include <iostream.h>
char * up_to_hex_table = "0123456789abcdef";
void to_x( char *p, int v, int radix, int n )
{
p[n - 1] = up_to_hex_table[v & (radix - 1)];
v /= radix;
if ( v ) to_x( p, v, radix, --n );
}
int main()
{
int v;
char p[33];
char * pp;
cin >> v;
memset( p, ' ', sizeof( p ) - 1 );
p[sizeof( p ) - 1] = '\0';
to_x( p, v, 16, sizeof( p ) - 1 );
for ( pp = p; *pp; pp++ ) if ( *pp != ' ' ) cout << *pp;
return 0;
}
Не знаю) Я его больше не видел...Так чем тут вся эпопея то закончилась ? ;-)
Ну почему же?) Как лучше сделать?Вообще это не самый лучший пример для рекурсии
Обучение наступательной кибербезопасности в игровой форме. Начать игру!