Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vlad708
4 / 4 / 0
Регистрация: 04.11.2012
Сообщений: 72
#1

Сравнение кол-ва символов рекурсией - C++

07.12.2012, 19:46. Просмотров 228. Ответов 1
Метки нет (Все метки)

Применить рекурсивную функцию для определения каких цифр (1, 2, 3) больше среди цифр натурального числа.

Попытался сам сделать, но что-то вообще никак не пойму как всё красиво реализовать...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <conio.h>
 
int fun(int n) {
  int s=1,i,c;
  if ( (n==3) || (n==5) || (n==1) ) return 1;
    else
  if (n!=0)
   c=n%10;
    if (c==1)
      return 1+fun(n/10);
    if (c==3)
      return s+fun(n/10);
    if (c==5)
      return s+fun(n/10);
}
 
void vvod( int *n) {
  printf("Введите число\n");
  scanf("%i",n);
}
 
void main () {
  clrscr ();
  int n;
  vvod(&n);
  printf("%d",fun(n));
  getch ();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2012, 19:46     Сравнение кол-ва символов рекурсией
Посмотрите здесь:

Сравнение русских символов. C++
Сравнение символов C++
Сравнение символов из строки C++
C++ подсчет кол-ва символов в массиве
C++ подсчет кол-ва символов в массиве
C++ Сравнение и замена символов
C++ сравнение символов в строке
Сравнение символов в операторе if C++
Подсчет кол-ва символов в строке во входном файле C++
C++ Ограничение на ввод определённого кол-ва символов
C++ Вывести слово с максимальным кол-вом символов
Как подсчитать кол-во символов между двумя знаками? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
6472 / 3670 / 460
Регистрация: 29.11.2010
Сообщений: 9,678
07.12.2012, 19:54     Сравнение кол-ва символов рекурсией #2
Если без проверки на то, что подобных цифр быть не может, то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int foo(int x, int n1, int n2, int n3)
{
    if (x == 0)
        return (n1 > n2 ? (n1 > n3 ? 1 : 3) : (n2 > n3 ? 2 : 3));
    switch (x % 10)
    {
        case 1 : n1++; break;
        case 2 : n2++; break;
        case 3 : n3++; break;
        default : break;
    }
    return foo(x / 10, n1, n2, n3);
}
 
int main()
{
    int x;
    std::cin >> x;
    std::cout << foo(x, 0, 0, 0);
}
Yandex
Объявления
07.12.2012, 19:54     Сравнение кол-ва символов рекурсией
Ответ Создать тему
Опции темы

Текущее время: 15:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru