Составить программу которая для любого натурального числа

Задача B. Количество нулей
Дано натуральное число N. Напишите функцию int NumberOfZeroes(int n), определяющую количество нулей среди всех цифр числа N.

  1. int NumberOfZeroes( int n)
  2. int count = 0;
  3. while (n)
  4. if (n % 10 == 0)
  5. count++;
  6. n /= 10;
  7. >
  8. return count;
  9. >

Задача C. Минимальная и максимальная цифры
Дано натуральное число N. Напишите функцию int MinDigit (int n) и int MaxDigit (int n), определяющие наименьшую и наибольшую цифры данного числа.
Необходимо вывести наименьшую и наибольшую цифры данного числа через пробел.

  1. int MinDigit ( int n)
  2. int cur;
  3. int min_n = 9;
  4. while (n)
  5. cur = n % 10;
  6. min_n = min(min_n,cur);
  7. n /= 10;
  8. >
  9. return min_n;
  10. >
  11. int MaxDigit ( int n)
  12. int cur;
  13. int max_n = 0;
  14. while (n)
  15. cur = n % 10;
  16. max_n = max(max_n,cur);
  17. n /= 10;
  18. >
  19. return max_n;
  20. >

Задача D. Двоичная запись

21 Цикл while. Нахождение всех делителей числа Python


Дано натуральное число N. Выведите его представление в двоичном виде в обратном порядке.

  1. int n;
  2. cin >> n;
  3. while (n)
  4. cout
  5. n >>= 1;
  6. >
  7. cout

Задача E. Обращение числа
Напишите функцию int reverse(int n), которая переставляет цифры числа в обратном порядке .

Вариант 1. Если перевернутое число не требуется оформлять как отдельную переменную, то можно, просто откусывая последние цифры исходного числа, выписывать их в строку вывода .

  1. int reverse( int n)
  2. do
  3. cout
  4. n /= 10;
  5. >
  6. while (n);
  7. return 0;
  8. >

Вариант 2. Но можно и завести отдельную переменную под перевертыш, тогда появится возможность при необходимости использовать результат в дальнейшем.

  1. int reverse( int n)
  2. int rev = 0;
  3. do
  4. rev = rev * 10 + n % 10;
  5. n /= 10;
  6. >
  7. while (n);
  8. return rev;
  9. >

Задача F. Количество палиндромов
Назовем число палиндромом, если оно не меняется при перестановке его цифр в обратном порядке. Напишите функцию bool IsPalindrome (int n), проверяющую по данному числу n, является ли оно палиндромом.
Напишите программу, которая по заданному числу K выводит количество натуральных палиндромов, не превосходящих K.

  1. bool IsPalindrome ( int cur)
  2. int base = cur;
  3. int rev = 0;
  4. while (cur)
  5. rev = rev * 10 + cur % 10;
  6. cur /= 10;
  7. >
  8. if ( base == rev)
  9. return true ;
  10. else
  11. return false ;
  12. >
  13. int main()
  14. freopen( «input.txt» , «r» ,stdin);
  15. freopen( «output.txt» , «w» ,stdout);
  16. int n;
  17. cin >> n;
  18. int cur = 1, count = 0;
  19. while (cur
  20. if (IsPalindrome (cur))
  21. count++;
  22. cur++;
  23. >
  24. cout

Источник: cpptasksolver.blogspot.com

Пишем программу: нахождения НОД и НОК двух чисел | Алгоритм Евклида

Читайте также:
Программа про авто с джереми кларксоном

Помогите решить задачу на C++

Составить программу, которая для любого натурального числа печатает
количество цифр в записи этого числа.
Или вот эту:
Напишите программу, которая читает натуральное число в десятичном
представлении, а на выходе выдает это же число в десятичном представлении и на
естественном языке. Например: 7 — семь, 204 — двести четыре, 52 — пятьдесят два.

Обе должны использовать оператор выбора switch.

nayman

Создатель

Примерно вот так:

# include
# include
unsigned int y, n1, n2;
void main ()

switch (n1)
< case 1:
switch (n2)
< case 0: printf(«desyat`»); break;
case 1: printf(«odinnadcat`»); break;
case 2: printf(«dvenadcat`»); break;
case 3: printf(«trinadcat`»); break;
case 4: printf(«chetirnadcat`»); break;
case 5: printf(«piatnadcat`»); break;
case 6: printf(«shestnadcat`»); break;
case 7: printf(«semnadcat`»); break;
case 8: printf(«vosemnadcat`»); break;
case 9: printf(«deviatnadcat`»); break;
>;
break;
case 2: printf(«dvadcat`»); break;
case 3: printf(«tridcat`»); break;
case 4: printf(«sorok»); break;
case 5: printf(«piat`desiat»); break;
case 6: printf(«shest`desiat»); break;
case 7: printf(«semdesiat»); break;
case 8: printf(«vosemdesiat»); break;
case 9: printf(«devianosto»); break;
>;
if (n1!=1)
switch (n2)
< case 1: printf(«odin»); break;
case 2: printf(«dva»); break;
case 3: printf(«tri»); break;
case 4: printf(«chetire»); break;
case 5: printf(«piat`»); break;
case 6: printf(«shest`»); break;
case 7: printf(«sem`»); break;
case 8: printf(«vosem`»); break;
case 9: printf(«deviat`»); break;
>
>

Roflmao123

Писатель

You should do your homework yourself or else you won’t learn anything.

lexxh6

Создатель

Составить программу, которая для любого натурального числа печатает
количество цифр в записи этого числа.
Вот:
#include
#include
#include
#define MAXC 100
main() char s[MAXC];
int c,i=0,n,k=0;
while ((c=getchar())isdigit(c))
s[i++] =c;
s=’’;
n=atoi(s);
switch (n) case 0:
printf(«0 ili oshibka vvodan»);
break;
default:
while(n>0) n=n/10;
k++;
>
printf(«kol-vo:%dn»,i);
break;
>
return 0;
>

Последнее редактирование: 9 Ноя 2015

lexxh6

Создатель

Напишите программу, которая читает натуральное число в десятичном
представлении, а на выходе выдает это же число в десятичном представлении и на
естественном языке. Например: 7 — семь, 204 — двести четыре, 52 — пятьдесят два.
Читает от 1 до 999999. При желании можно расширить. Тщательно не тестировалась.
#include
#include
#include
#include
#define MAXC 100
void itos (int n,int i);
main() char s[MAXC];
int c,i=0,n,k=0;
while ((c=getchar())isdigit(c))
s[i++] =c;
s=’’;
n=atoi(s);
itos(n,i);
return 0;
>
void itos(int n,int i) /*Печать n до 6 разрядов*/
int k;
int flag=0;
if (n>999999) printf(«previshenie diapazona, ispolzuite 4islo do 999 999 n»);
return;
>
while (i—>0)
k=n/((int)pow(10.0,i))%10;
if(i+1==6||i+1==3)
switch(k)
case 1: printf(«sto «); break;
case 2: printf(«dvesti «); break;
case 3: printf(«trista «); break;
case 4: printf(«chetiresta «); break;
case 5: printf(«pyatsot «); break;
case 6: printf(«shestsot «); break;
case 7: printf(«semsot «); break;
case 8: printf(«vosemsot «); break;
case 9: printf(«devyatsot «); break;
>
if(i+1==5||i+1==2)
switch(k)
case 1: flag=1; break;
case 2: printf(«dvadtsat «); break;
case 3: printf(«tridtsat «); break;
case 4: printf(«sorok «); break;
case 5: printf(«pyatdesyat «); break;
case 6: printf(«shestdesyat «); break;
case 7: printf(«semsdesyat «); break;
case 8: printf(«vosemdesyat «); break;
case 9: printf(«devyanosto «); break;
>
if(i+1==4||i+1==1) if (flag == 1) flag = 0;
switch(k)
case 0: printf(«desyat «); break;
case 1: printf(«odinnadcat «); break;
case 2: printf(«dvenadcat «); break;
case 3: printf(«trinadcad «); break;
case 4: printf(«4etirnadcat «); break;
case 5: printf(«pyatnadcat «); break;
case 6: printf(«shestnadcat «); break;
case 7: printf(«semnadcat «); break;
case 8: printf(«vosemnadcat «); break;
case 9: printf(«devyatnadcat «); break;
>
if(i+1==4)
printf («tisya4 «);
>
else switch(k)
case 0:
if (i+1==4)
printf («tisya4 «);
break;
case 1:
if (i+1==4)
printf(«odna «);
else if (i+1==1)
printf(«odin «);
break;
case 2:
if (i+1==4)
printf(«dve «);
else if (i+1==1)
printf(«dva «);
break;
case 3: printf(«tri «); break;
case 4: printf(«4etire «); break;
case 5: printf(«pyat «); break;
case 6: printf(«shest «); break;
case 7: printf(«sem «); break;
case 8: printf(«vosem «); break;
case 9: printf(«devyat «); break;
>
if(i+1==4)
if (k==1)
printf(«tisyacha «);
else if (k>=2k <=4)
printf(«tisyachi «);
else if (k>4)
printf(«tisyach «);
>
>
>
>

Читайте также:
Программа которая подсчитывает слова в тексте

Источник: nulled.cc

Задача 1. Определить и вывести на экран цифры целого числа n.

4538 mod 10 = 8, получим последнюю цифру числа (она же является первой справа).

Выдаем сообщение: «1 — я цифра справа равна 8».

После этого выполним целочисленное деление заданного числа 4538 на 10, получим 453 (остаток отбрасывается):

4538 div 10 = 453.

Далее процесс повторяем:

2 — й раз; 453 mod 10 = 3

2 — я цифра справа равна 3,

453 div 10 = 45,

3 — й раз; 45 mod 10 = 5,

3 — я цифра справа равна 5,

45 div 10 = 4,

4 — й раз; 4 mod 10 = 4,

4 — я цифра справа равна 4,

4 div 10 = 0.

Program Problem1;

uses Crt;

var

n, p, i: integer;

begin

write(‘Введите натуральное число n

while n <> 0 do

begin

p:= n mod 10;

writeln(i, ‘ — я цифра справа равна ‘, p);

end

end.

Задача 2. Составить программу перестановки первой и последней цифр введенного натурального числа.

Решение

Алгоритм. Пусть пользователем введено число 4538. После перестановки первой и последней цифр число станет таким: 8534.

Определить последнюю цифру числа нетрудно. Это можно сделать уже известным нам способом: 4538 mod 10.

Чтобы найти и отделить первую цифру числа, надо использовать прием, который применялся в предыдущих программах для вывода цифр числа и для подсчета суммы цифр, т. е. отделять по одной цифре справа. Но, если в предыдущих программах такой процесс продолжался до тех пор пока n <> 0 (n не равнялось нулю), а когда n становилось равным нулю, то цикл заканчивался т. е. все цифры, включая первую, отделялись, то теперь надо этот процесс остановить на одну цифру раньше и тогда последним значением переменной n будет первая цифра числа.

Читайте также:
Программы для установка игр на Xbox 360

В нашем примере она равна 4.

Итак, первая и последняя цифры найдены. Как переставить их в числе.

Для введенного нами числа это можно сделать так. Вычесть из него первую цифру, умноженную на 1000 и вычесть последнюю цифру:

4538 — 4 1000 — 8 = 530.

К полученному результату прибавить последнюю цифру — 8, умноженную на 1000 и прибавить первую цифру: 530 + 8 1000 + 4 = 8534.

Две последние операции можно записать в одной строке:

4538 — 4 1000 — 8 + 8 1000 + 4 = 8534.

Возникает одна трудность. Как определить разряд, в котором находится первая цифра числа (первая слева) и на сколько надо умножить ее при вычитании? Тысячи ли это, десятки тысяч или другой разряд?

Для того, чтобы это выяснять заведем переменную, первоначальное значение которой 1, а затем, каждый раз при отделении цифры она умножается на 10.

Посмотрим весь процесс на примере того же числа 4538.

Первоначальные значения: n = 4538, i = 1.

Цикл продолжается пока n 10, 4538 10 — истина, значит операторы цикла выполняются первый раз: i:= i*10 = 1*10 = 10; — переменная i получает первое значение,

n:= 4538 div 10 = 453.

Проверка условия: 453 10 — условие выполняется, значит цикл выполняется второй раз: i:= i*10 = 10*10 = 100; n:= 453 div 10 = 45.

Проверка условия: 45 10 — истина, значит цикл выполняется третий раз:

i:= i*10 = 100*10 = 1000, n:= 45 div = 4.

Проверка условия: 4>=10 — ложь, значит операторы цикла не выполняются. Цикл заканчивается.

Конечные значения переменных: n = 4 — первая цифра числа, i = 1000. Теперь остается выполнить сам процесс перестановки цифр и выдать результат на экран.

Program Problem2;

uses Crt;

var

n, n1, p, a, i: integer;

begin

write(‘Введите натуральное число n ‘); readln(n);

p:= n mod 10;

while n >= 10 do

begin

n:= n div 10;

end;

n1:= a — n*i — p + n + p*i;

writeln(‘Число после перестановки цифр ‘, n1);

end.

Источник: cyberpedia.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru