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

Рекурсия: вычисление суммы и количества цифр числа, максимальной и минимальной его цифры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Либо я дурак либо.... http://www.cyberforum.ru/cpp-beginners/thread199408.html
Короче задание такое...создать матрицу, определить сумму элементов в тех стлбцах которые не содержат отрицательных элементов...но дело не в этом он мне пишет в 24 строке не найден или неопределен...
C++ Удаление слов Под С Удалить из предложения все слова, встречающиеся по одному разу. Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread199400.html
Замена слова C++
Под С В данном предложении заменить каждое слово child словом children. Заранее спасибо
C++ Найти длину самого короткого слова
Под С Найти длину самого короткого слова. Заранее спасибо
C++ Матрица! Сумма элементов строки http://www.cyberforum.ru/cpp-beginners/thread199396.html
Под С В данной действительной матрице порядка n найти сумму элементов строки, в которой располагается элемент с наименьшим значением. Заранее спасибо.
C++ Перемещение максимального элемента матрицы в левый верхний угол. На C Дана целочисленная матрица размером 7*4. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (один из них ) оказался в верхнем левом углу. Заранее спасибо. подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9682 / 5632 / 955
Регистрация: 25.07.2009
Сообщений: 10,808
29.11.2010, 01:21
Функции вот:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <stdio.h>
#include <math.h>
 
unsigned int sum(unsigned int number) { return ( number > 9 ) ? number % 10 + sum(number / 10) : number; }
 
unsigned int cnt(unsigned int number) { return ( number > 9 ) ? 1 + cnt(number / 10) : 1; }
 
unsigned int max(unsigned int number) {
    unsigned int first, last, div;
    
    if ( number < 10 )
        return number;
 
    div = (unsigned int)pow(10.0, floor(log10((double)number)));
    first = number / div;
    last = number % 10;
    
    return ( first > last ) ? max(number / 10) : max(number - first * div);
}
 
unsigned int min(unsigned int number){
    unsigned int first, last, div;
    
    if ( number < 10 )
        return number;
 
    div = (unsigned int)pow(10.0, floor(log10((double)number)));
    first = number / div;
    last = number % 10;
    
    return ( first < last ) ? min(number / 10) : min(number - first * div);
}
 
int main(void){
    unsigned int number;
    
    while ( printf("Number: ") && scanf("%u", &number) == 1 && number )
        printf("\tSum:\t%u\n\tCount:\t%u\n\tMax:\t%u\n\tMin:\t%u\n", sum(number), cnt(number), max(number), min(number));
    
    return 0;
}
а с этим
Цитата Сообщение от Chanelly Посмотреть сообщение
Опеределить рекурентные соотношения и глубину рекурсии.
Вы уж сами как-нибудь...
И пишите, пожалуйста, по-русски! К примеру слово
Цитата Сообщение от Chanelly Посмотреть сообщение
цыфри
на самом деле пишется так: "цифры"...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru