Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
Bumer@ng
0 / 0 / 0
Регистрация: 20.08.2010
Сообщений: 69
1

Сумма цифр

20.08.2010, 22:29. Просмотров 1543. Ответов 29
Метки нет (Все метки)

Пользователь вводит с клавиатуры число, необходимо показать на экран сумму его цифр.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2010, 22:29
Ответы с готовыми решениями:

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

Найти простые числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа, делилась на 7
задание:"найдите простые числа такие, чтобы сумма их цифр, а также сумма цифр...

Определить для числа: является ли сумма его цифр двузначным числом; больше ли сумма его цифр числа "а"
4.24. Дано двузначное число. Определить: а) является ли сумма его цифр...

Определить: больше ли сумма максимальной и минимальной цифры чем сумма остальных цифр числа
Дано целое число x (999 < x < 9 000 000). Определить: больше ли сумма...

Рекурсия: количество цифр в числе, сумма цифр и реверс числа
Вот задание: Написать программу, которая запрашивает у пользователя целое...

29
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
20.08.2010, 22:53 2
C++
1
2
3
4
5
6
7
8
9
int n=123123;
int sum=0;
 
while (n)
{
    sum+=(n%10);
    n/=10;
}
std::cout  << "SUM: " << sum;
0
easybudda
Модератор
Эксперт CЭксперт С++
10148 / 6055 / 1522
Регистрация: 25.07.2009
Сообщений: 11,476
20.08.2010, 23:13 3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main(void){
    int num, sum;
    
    printf("Number: ");
    scanf("%d", &num);
    for ( sum = 0; num; num /= 10 )
        sum += num % 10;
    printf("Sum of digits: %d\n", sum);
    
    return 0;
}
0
outoftime
║XLR8║
764 / 663 / 212
Регистрация: 25.07.2009
Сообщений: 3,320
Записей в блоге: 5
20.08.2010, 23:14 4
А покомпактней?
C++
1
2
int n = 123123, ans = 0;
while (n) ans += n % 10, n /= 10;
0
CyBOSSeR
Эксперт С++
2313 / 1686 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
20.08.2010, 23:17 5
outoftime, не надо переусердствовать с компактностью в жертву понятности. Оператор следования (,) использовать подобным образом вообще не стоит.
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
20.08.2010, 23:17 6
Для разнообразия
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main()
{
    char num[10];
    int sum = 0;
    int i;
    
    printf("Vvedite chislo: ");
    gets(num);
    
    for (i = 0; i < strlen(num); i++)
        sum += (int)num[i] - 48;
    
    printf("Summa cifr vvedennogo chisla: %d", sum);
    
    getch();
    return 0;
}
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
20.08.2010, 23:17 7
outoftime, какое покомпактней?
Может весь код будет в 1 строку писать? А что, компактно ведь, да?
0
easybudda
Модератор
Эксперт CЭксперт С++
10148 / 6055 / 1522
Регистрация: 25.07.2009
Сообщений: 11,476
20.08.2010, 23:27 8
Цитата Сообщение от outoftime Посмотреть сообщение
А покомпактней?
C
1
2
3
...
for ( sum = 0; num && ( sum = sum + num % 10 ); num /= 10 );
...
0
half-node
21 / 18 / 3
Регистрация: 12.08.2010
Сообщений: 206
20.08.2010, 23:28 9
А я как новичок, предложу вариант новичка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namspace std;
const int MAX=10;
int main()
{
   int n[MAX];
   int sum,i;
   
   for(i=0; i<MAX; i++)
   {
      cout << "Enter number: ";
      cin >> n[i];
      
   }
   for(i=0; i<MAX; i++)
   {
      sum+=n[i];
   }
    cout << "Sum = " << sum;
    return 0;
}
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
20.08.2010, 23:31 10
half-node,
Новичку тоже не помешает быть внимательным... Ну или хотя бы дотошным и проверять код)))
0
rangerx
1944 / 1553 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
20.08.2010, 23:33 11
C++
1
do sum += n % 10; while(n /= 10);
0
half-node
21 / 18 / 3
Регистрация: 12.08.2010
Сообщений: 206
20.08.2010, 23:35 12
Цитата Сообщение от silent_1991 Посмотреть сообщение
half-node,
Новичку тоже не помешает быть внимательным... Ну или хотя бы дотошным и проверять код)))
Поправил, да. Спасибо )

Добавлено через 51 секунду
Хотя, подсчет суммы можно и в первый цикл вставить, под конец.
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
20.08.2010, 23:39 13
half-node,
И тем не менее нет, не отработает. Sum не инициализирована. Да и не очень удобное решение - вводить число поциферно)))
0
easybudda
Модератор
Эксперт CЭксперт С++
10148 / 6055 / 1522
Регистрация: 25.07.2009
Сообщений: 11,476
20.08.2010, 23:48 14
C
1
while ( ( sum += num % 10 ) && ( num /= 10 ) );
0
half-node
21 / 18 / 3
Регистрация: 12.08.2010
Сообщений: 206
20.08.2010, 23:55 15
Цитата Сообщение от silent_1991 Посмотреть сообщение
half-node,
И тем не менее нет, не отработает. Sum не инициализирована. Да и не очень удобное решение - вводить число поциферно)))
Да, с инициализацией дал промаху, согласен
А вот по поводу поциферного ввода, это спорный вопрос. Дело в том, как мне кажется, что пользователю вообще бы хорошо давать выбор, сколько цифр вводить. Это, конечно, малость другой код нежели мой, но все же. Интерфейс пользователя, какой-никакой, а быть должен.

Добавлено через 42 секунды
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
while ( ( sum += num % 10 ) && ( num /= 10 ) );
Скоро на Lisp перейдете
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
20.08.2010, 23:56 16
Ну, скажем, в самом оптимальном (и самом первом в теме) решении мы тоже не даём пользователю возможности вводить желаемое количество цифр, потому как оно ограниченно размером типа int.
Но и в таком, да и в моём решении пользователь может удалить уже введённые цифры, а в вашем он такой возможности не имеет.
0
easybudda
Модератор
Эксперт CЭксперт С++
10148 / 6055 / 1522
Регистрация: 25.07.2009
Сообщений: 11,476
20.08.2010, 23:57 17
функцЫя
C
1
int sum(int num) { return ( num ) ? num % 10 + sum(num / 10) : 0; }
0
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
20.08.2010, 23:58 18
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
#include <iterator>
#include <iostream>
#include <numeric>
 
using namespace std;
 
typedef unsigned char uchar;
 
struct s_sum{
    s_sum() : isEnd(false){}
    uchar operator()(uchar sum, uchar el){
        if( !isdigit(el) ){ isEnd = true; }
        else if( !isEnd ){ return sum+el-'0'; }
        return sum;
    }
private:
    bool isEnd;
};
 
int main(){
  cout <<  (unsigned)accumulate( istream_iterator<uchar>(cin), 
                  istream_iterator<uchar>(), 0, s_sum() );
  return 0;
}
хотя сумма ограниченна, но ничего другого не придумал
0
half-node
21 / 18 / 3
Регистрация: 12.08.2010
Сообщений: 206
21.08.2010, 00:00 19
Даешь многопоточную и многофайловую программу по счету суммы цифр, введенных пользователем!

Добавлено через 44 секунды
Цитата Сообщение от silent_1991 Посмотреть сообщение
Ну, скажем, в самом оптимальном (и самом первом в теме) решении мы тоже не даём пользователю возможности вводить желаемое количество цифр, потому как оно ограниченно размером типа int.
Но и в таком, да и в моём решении пользователь может удалить уже введённые цифры, а в вашем он такой возможности не имеет.
Ваше ... слаще! Не спорю. Оставим полемику на данную тему
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
21.08.2010, 00:06 20
half-node,
Извините, не выдержал))) Ещё у вас есть возможность ввести в качестве цифры число, состоящее из более чем одной цифры, что не есть гуд))) Вот теперь закончим)))
0
21.08.2010, 00:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2010, 00:06

Определить сколько цифр в заданном натуральном числе, и чему равна сумма его цифр
Дано натуральное число n (n&lt;=100). Определить сколько цифр в числе n, чему...

Вывести ok , если сумма первых двух цифр числа равна сумме остальных его цифр
От пользователя вводится 4-х значное число. Вывести ok , если сумма первых двух...

Вычислить число положительных целых, меньших n, таких, что их сумма цифр равна сумме цифр в n
Здравствуйте! Помогите плиз Нужно написать программу, которая по целому...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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