Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Позиционная запись числа



Пример 1. Найти количество цифр в числе и поменять их порядок на обратный.

Для решения задачи используем позиционную запись числа в десятичной системе счисления: n=ak-110k-1+ ak-210k-2+...+a1101+a0. Остаток от деления n на 10 даст a0. Разделим n на 10, а результат обозначим через n1: n1= ak-110k-2+ ak-210k-3+...+a2101+a1. Остаток от деления n1 на 10 даст a1. Повторяя операцию деления до тех пор, пока не результат не будет равен 0, найдем все цифры числа n. При этом число шагов деления совпадает с количеством цифр в числе. Образуя сумму по реккурентной формуле mk=mk-110+ ak-1, получим значение числа с обратным порядком цифр.

#include <iostream.h>

#include<math.h>

main()

{ int n,m,k;

m=0;

k=0;

cin>>n;

while(n>0)

{ m=10*m+n%10;

n=n/10;

k=k+1;

}

cout<<"число цифр:"<<k<<endl;

cout<<"палиндром:"<<m<<endl;

Пример 2. Дано натуральное число n. Выбросить из записи числа n цифры 0 и 5,оставив прежним порядок остальных цифр.

Процесс нахождения остатков с последующим делением исходного числа на 10 позволяет найти цифры исходного числа в обратном порядке. При образовании суммы числа с удаленными цифрами необходимо цифры исходного числа умножать на 10 в соответствующей степени. Возведение в степень реализуетя с помощью алгоритма умножения на 10 в основном цикле.

#include <iostream.h>

#include<math.h>

main()

{ long int n,m,k,l;

m=0;

k=1;

cin>>n;

while(n>0)

{ l=n%10;

if(l!=5 && l!=9)

{ m=m+k*l;

k=k*10;

}

n=n/10;

}

cout<<m<<endl;

}

Пример 3. Найти все трехзначные десятичные числа, сумма цифр которых равна заданному натуральному числу

Решение содержит два вложенных цикла по числу единиц и числу десятков. Число сотен вычисляется по заданной сумме цифр.

#include <iostream.h>

main()

{int n;

int i,j,k;

do

cin>>n;

while(n<=0 && n>27);

for(i=0;i<=9;i++)

for(j=0;j<=9;j++)

{ k=n-i-j;

if(k>=1 && k<=9)

cout<<i+j*10+k*100<<endl;

}

}





Дата публикования: 2015-09-17; Прочитано: 389 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...