Алгоритм просмотра всех цифр числа;
«реверс» числа – получения по заданному натуральному N нового натурального числа с противоположным порядком цифр;
перевод числа в произвольную систему счисления;
просмотр цифр числа с применением рекурсии.
C/C++
Решить задачи на С++ по обработке цифр числа:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
// алгоритм просмотра всех цифр числа
void smotr(unsigned num)
{
int i = 0;
const int size = 10;
int A[size];
while(num)
{
A[i] = num % 10;
num /= 10;
i++;
}
while(i > 0)
{
cout << A[i-1];
i--;
}
cout << endl;
}
// ревер числа
unsigned reverse_num(unsigned num)
{
unsigned N = 0;
while(num)
{
N += num % 10;
num /= 10;
if(num) N*= 10;
}
return N;
}
// перевод в другую систему
string new_system(unsigned num, unsigned ns)
{
string n;
int i = 0, tmp;
while(num > 0)
{
tmp = num % ns;
num /= ns;
switch(tmp)
{
case 0:
n.insert(0,"0");
break;
case 1:
n.insert(0,"1");
break;
case 2:
n.insert(0,"2");
break;
case 3:
n.insert(0,"3");
break;
case 4:
n.insert(0,"4");
break;
case 5:
n.insert(0,"5");
break;
case 6:
n.insert(0,"6");
break;
case 7:
n.insert(0,"7");
break;
case 8:
n.insert(0,"8");
break;
case 9:
n.insert(0,"9");
break;
case 10:
n.insert(0,"A");
break;
case 11:
n.insert(0,"B");
break;
case 12:
n.insert(0,"C");
break;
case 13:
n.insert(0,"D");
break;
case 14:
n.insert(0,"E");
break;
case 15:
n.insert(0,"F");
break;
default:
cerr << "Неверное число." << endl;
exit(1);
break;
}
i++;
}
return n;
}
// рекурсивный просмтор цифр числа
unsigned recursia_view(unsigned num)
{
static int i = 0;
static const int size = 10;
static int A[size];
if(num)
{
A[i] = num % 10;
i++;
return recursia_view(num / 10);
}
else
{
for(int z = i - 1; z >= 0; z--)
cout << A[z];
}
return 0;
}
int main()
{
unsigned O,N;
do
{
cout << "Введите натуральное число: ";
cin >> O;
} while(!O);
smotr(O);
N = reverse_num(O);
cout << N << endl;
string S;
int ns;
do
{
cout << "Введите систему счисления (2-16): ";
cin >> ns;
} while(ns < 2 || ns > 16);
S = new_system(O,ns);
cout << S << endl;
recursia_view(O);
cout << endl;
return 0;
}
#include <string>
#include <cstdlib>
using namespace std;
// алгоритм просмотра всех цифр числа
void smotr(unsigned num)
{
int i = 0;
const int size = 10;
int A[size];
while(num)
{
A[i] = num % 10;
num /= 10;
i++;
}
while(i > 0)
{
cout << A[i-1];
i--;
}
cout << endl;
}
// ревер числа
unsigned reverse_num(unsigned num)
{
unsigned N = 0;
while(num)
{
N += num % 10;
num /= 10;
if(num) N*= 10;
}
return N;
}
// перевод в другую систему
string new_system(unsigned num, unsigned ns)
{
string n;
int i = 0, tmp;
while(num > 0)
{
tmp = num % ns;
num /= ns;
switch(tmp)
{
case 0:
n.insert(0,"0");
break;
case 1:
n.insert(0,"1");
break;
case 2:
n.insert(0,"2");
break;
case 3:
n.insert(0,"3");
break;
case 4:
n.insert(0,"4");
break;
case 5:
n.insert(0,"5");
break;
case 6:
n.insert(0,"6");
break;
case 7:
n.insert(0,"7");
break;
case 8:
n.insert(0,"8");
break;
case 9:
n.insert(0,"9");
break;
case 10:
n.insert(0,"A");
break;
case 11:
n.insert(0,"B");
break;
case 12:
n.insert(0,"C");
break;
case 13:
n.insert(0,"D");
break;
case 14:
n.insert(0,"E");
break;
case 15:
n.insert(0,"F");
break;
default:
cerr << "Неверное число." << endl;
exit(1);
break;
}
i++;
}
return n;
}
// рекурсивный просмтор цифр числа
unsigned recursia_view(unsigned num)
{
static int i = 0;
static const int size = 10;
static int A[size];
if(num)
{
A[i] = num % 10;
i++;
return recursia_view(num / 10);
}
else
{
for(int z = i - 1; z >= 0; z--)
cout << A[z];
}
return 0;
}
int main()
{
unsigned O,N;
do
{
cout << "Введите натуральное число: ";
cin >> O;
} while(!O);
smotr(O);
N = reverse_num(O);
cout << N << endl;
string S;
int ns;
do
{
cout << "Введите систему счисления (2-16): ";
cin >> ns;
} while(ns < 2 || ns > 16);
S = new_system(O,ns);
cout << S << endl;
recursia_view(O);
cout << endl;
return 0;
}
Тимур Тавитов
С рекурсивным просмотром числа долго мучился. Решил оставить так, потому что по другому только в обратном порядке получалось выводить цифры.
какую тему проходите? STL, алгоритмы ??
Похожие вопросы
- Решите задачу на языке С++. Алгоритм проверки числа на простоту (переборный)
- Найти сумму цифр чисел, записанных в файл
- Помогите решить задачу по программированию на C++
- Решите задачу на с++, или хотя бы скажите идею как это вообще решать пожалуйста.
- Решите задачу на любом языке, или хотя бы скажите идею как это вообще решать пожалуйста.
- Решите задачу на любом языке. Желательно на с++.
- Помогите решить задачу по C++!
- Для всех задач сформировать одномерный массив N случайных чисел из интервала (-10; 10).
- Задача по Массивах С++ Дано натуральное число N...
- Помогите решить задачу по программированию