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

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

Войти
Регистрация
Восстановить пароль
 
poison_in_eyes
0 / 0 / 0
Регистрация: 12.09.2011
Сообщений: 7
#1

Сформировать последовательность, каждый элемент которой равен сумме цифр исходной последовательности - C++

19.10.2011, 12:48. Просмотров 672. Ответов 4
Метки нет (Все метки)

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

 Комментарий модератора 
2.3 Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы, что на ваш вопрос ответят.
3.3 Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2011, 12:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать последовательность, каждый элемент которой равен сумме цифр исходной последовательности (C++):

Сформировать последовательность, каждый элемент которой равен сумме цифр исходной последовательности - C++
Вводится последовательность из N целых чисел. Сформировать последовательность, каждый элемент которой равен сумме цифр исходной...

Сформировать одномерный массив, каждый элемент которого равен сумме элементов исходной матрицы - C++
Задан двухмерный числовой массив. Сформировать одномерный массив, каждый элемент которого равен сумме элементов соответствующей исходной...

Сформировать одномерный массив, каждый элемент которого равен сумме цифр элемента исходного массива - C++
Ребята, помогите решить задачу Только перешел на массивы Сформировать одномерный массив, каждый элемент которого равен сумме цифр...

Вектор, каждый элемент которого равен сумме индексов исходной матрицы, равного ключу поиска - C++
Здравствуйте, помогите пожалуйста решить задачку. Задана матрица произвольной размерности. Заполнить вектор, каждый элемент которого...

Определить квадратную матрицу, каждый элемент которой равен сумме элементов соответствующей строки - C++
Добрый день! Пожалуйста, помогите с программой. В функции Input Вводится массив с клавиатуры, а затем выводится на экран. Во второй...

Массив: Построить из динамического одномерный массив,каждый элемент, которого равен сумме элементов одной строки исходной матрицы. - C++
Помогите решить. Как можно проще, только начали изучать указатели. Дана динамическая целочисленная матрица.Построить динамический...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.10.2011, 13:38 #2
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int pred( int x, int y )
{
    for ( ; y ; y /= 10 )
        x += abs(y % 10);
    return x;
}
 
int main()
{
    std::cout << "Enter size: ";
    int n;
    std::cin >> n;
    std::vector<int> arr(n);
    std::cout << "Enter sequnce: ";
    for ( auto &x : arr )
        std::cin >> x;
    
    std::vector<int> result;
    std::transform( arr.begin(), arr.end(), std::back_inserter(result), std::bind1st( std::function< int(int, int) > (pred), 0 ) );
    
    std::cout << "New sequence: ";
    std::copy( result.begin(), result.end(), std::ostream_iterator<int> (std::cout, " ") );
    
    std::cout << "\nSum: " << std::accumulate( result.begin(), result.end(), 0, pred ) << std::endl;
}
Добавлено через 4 минуты
Хм, задание не так прочитал
Цитата Сообщение от poison_in_eyes Посмотреть сообщение
каждый элемент которой равен сумме цифр исходной последовательности.
Всех элементов? Тогда так
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int pred( int x, int y )
{
    for ( ; y ; y /= 10 )
        x += abs(y % 10);
    return x;
}
 
int main()
{
    std::cout << "Enter size: ";
    int n;
    std::cin >> n;
    std::vector<int> arr(n);
    std::cout << "Enter sequnce: ";
    for ( auto &x : arr )
        std::cin >> x;
    
    std::vector<int> result(n, std::accumulate( arr.begin(), arr.end(), 0, pred ) );
    
    std::cout << "Sum: " << std::accumulate( result.begin(), result.end(), 0, pred ) << std::endl;
}
0
-=ЮрА=-
Заблокирован
Автор FAQ
19.10.2011, 13:45 #3
Цитата Сообщение от poison_in_eyes Посмотреть сообщение
Вводится последовательность из N целых чисел. Сформировать последовательность, каждый элемент которой равен сумме цифр исходной последовательности. Найти сумму цифр в сформированной последовательности (функцией оформить определение суммы цифр числа).
- Вот С++ код
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
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
using namespace std;
 
//Извлекает число разрядов числа
long getDigits(long val)
{
    unsigned long ret = 1;
    while(1 < (val /= 10))
        ret++;
    return ret;
}
 
 
//Извлекает сумм разрядов числа
long getSumDigits(long val)
{
    unsigned long ret = (val % 10);
    while(1 < (val /= 10))
        ret += (val % 10);
    return ret;
}
 
int main()
{
    long nCount;//Число цтфр в последовательности
    long i,N;
    long * a;//Указатель на єлементі последовательности
    do
    {
        nCount = 0;
        cout<<"Enter N : ";cin>>N;
        a = new long[N];//Память под элементы последовательности
        cout<<"\tEnter sequence\n";
        
        for(i = 0; i < N; i++)
        {
            cout<<"a["<<i + 1<<"] = ";cin>>a[i];
            //Сразу преобразуем єлемент в число цифр
            a[i] = getSumDigits(a[i]);
            //Теперь уже прибавляем число цифр содержащее число цифр єлемента
            nCount += getDigits(a[i]);
        }
        cout<<"Digits in elements of input sequence\n";
        for(i = 0; i < N; i++)
            cout<<"a["<<i + 1<<"] = "<<a[i]<<"\n";
        cout<<"Total num of digits in new sequence : "<<nCount<<"\n";
        delete [] a;//Чистим память
        cout<<"Enter 1 for new input\n";
        cin>>N;
    }
    while(N == 1);
    return 0;
}
0
Миниатюры
Сформировать последовательность, каждый элемент которой равен сумме цифр исходной последовательности  
-=ЮрА=-
Заблокирован
Автор FAQ
19.10.2011, 13:48 #4
Задание я понял так - есть последовательность, переводим её элементы в суммы чисел соответсвующего элемента исходной последовательности. А затем находим число цифр в новой последовательности
0
-=ЮрА=-
Заблокирован
Автор FAQ
19.10.2011, 14:01 #5
Так поправлюсь задание сначала не так понял
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
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
using namespace std;
 
//Извлекает число разрядов числа
long getDigits(long val)
{
    unsigned long ret = 1;
    while(1 < (val /= 10))
        ret++;
    return ret;
}
 
 
//Извлекает сумму разрядов числа
long getSumDigits(long val)
{
    unsigned long ret = (val % 10);
    while(0 < (val /= 10))
        ret += (val % 10);
    return ret;
}
 
int main()
{
    long nCount;//Число цтфр в последовательности
    long i,N;
    long * a;//Указатель на єлементі последовательности
    do
    {
        cout<<"Enter N : ";cin>>N;
        a = new long[N];//Память под элементы последовательности
        cout<<"\tEnter sequence\n";
        
        for(i = 0; i < N; i++)
        {
            cout<<"a["<<i + 1<<"] = ";cin>>a[i];
            //Сразу преобразуем єлемент в число цифр
            a[i] = getSumDigits(a[i]);
        }
        nCount = 0;
        cout<<"Sum of digits in elements of input sequence\n";
        for(i = 0; i < N; i++)
        {
            cout<<"a["<<i + 1<<"] = "<<a[i]<<"\n";
            //Находим сумму цифр из чисел новой последовательности
            nCount += getSumDigits(a[i]);
        }
        cout<<"Total Sum of digits in new sequence : "<<nCount<<"\n";
        delete [] a;//Чистим память
        cout<<"Enter 1 for new input\n";
        cin>>N;
    }
    while(N == 1);
    return 0;
}
0
Миниатюры
Сформировать последовательность, каждый элемент которой равен сумме цифр исходной последовательности  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2011, 14:01
Привет! Вот еще темы с ответами:

Постройте массив S, каждый элемент которого равен сумме соответствующих элементов массивов A и B - C++
Даны массивы A и B, состоящие из n элементов. Постройте массив S, каждый элемент которого равен сумме соответствующих элементов массивов A...

Одномерный массив элемент которого равен сумме цифр - C++
Доброе время суток! Подскажите пожалуйста, если правильно сделал задание?! Сформировать одномерный массив, каждый элемент...

Массив, каждый элемент которого равен максимуму элементов одной строки исходной матрицы - C++
Не пойму условие.. Дана динамическая целочисленная матрица. Построить динамический одномерный массив, каждый элемент которого равен...

Получите новый массив, каждый элемент которого равен сумме соответствующего исходного элемента и его квадрата - C++
1.Сформируйте массив, содержащий n элементов, с помощью датчика случайных чисел. Получите новый массив, каждый элемент которого равен сумме...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.10.2011, 14:01
Ответ Создать тему
Опции темы

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