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

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

Войти
Регистрация
Восстановить пароль
 
Quiet Snow
4373 / 1235 / 208
Регистрация: 25.04.2010
Сообщений: 3,024
#1

Сумма цифр введённого числа - C++

04.04.2011, 15:50. Просмотров 1021. Ответов 1
Метки нет (Все метки)

Создал сабж т.к. решение написано по теме, но не по разделу.
По воле администрации сохраняю все исходники в соотв. разделах

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
// digits_sum.cpp: главный файл проекта.
 
#include "stdafx.h"
 
using namespace System;
 
int main(array<System::String ^> ^args)
{
//Написано на .NET но должно быть кристально понятно любому. 
String ^ input;
 
int how_many_digits = 1;
int summa =0;
int check_if_zero = 0;
 
bool stopcount = false;
float ostatok =0;
Console::Write(L"Введите число: ");
input = Console::ReadLine();
int number = Convert::ToInt32(input); //пляска с бубном, ибо не нашел как считать целое с консоли. Сорри, не до этого было 
if(number>10){
while(stopcount==false){
how_many_digits++;
check_if_zero = number/Math::Pow(10,how_many_digits); //Math::Pow(10,how_many_digits) - возведение 10 в степень how_many_digits
 
 
//ВНИМАНИЕ: поскольку check_if_zero имеет тип int, то произойдет ЦЕЛОЧИСЛЕННОЕ деление. Если разделить 10 на 3 в результате будет 3(ТРИ).
if (check_if_zero<=0){ //проверяем, если число, деленное на десять возведенное в степень how_many_digits меньше единицы(то есть, подвинулся ли разряд дальше нуля до запятой)
stopcount = true;
//how_many_digits--; //это же неверно? Получается мы посчитали на разряд больше? Поправим разряд 
} 
}//посчитали цифирь
 
int current_digit = 0;
stopcount = false;
while(!stopcount){
 
if (how_many_digits>0){ // все цифры прошли? 
ostatok = number % Convert::ToInt32(Math::Pow(10,how_many_digits-1)); //Внимание! % в языке c++ - это "остаток от деления". Тип - float
current_digit = (number - (ostatok))/Math::Pow(10,how_many_digits-1); //Вычисляем текущую цифру: из числа вычитаем остаток, делим на 10 * количество разрядов-1
summa += current_digit; //сумма
number = number - (current_digit * Math::Pow(10,how_many_digits-1)); //уменьшаем число, убирая больший десятичный разряд.
} else {
stopcount = true;
 
}
how_many_digits--;
}
 
}
Console::WriteLine("\n{0}",how_many_digits);
    
-   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2011, 15:50     Сумма цифр введённого числа
Посмотрите здесь:

Найти сумму цифр введённого числа - C++
Нужно найти сумму цифр введённого числа используя for. P.S. Заранее спасибо !

Найти сумму квадратов цифр введённого числа - C++
Мне нужно найти сумму квадратов цифр введённого числа. Допустим ввожу 63, компьютер должен выдавать результат 45, то есть 6*6+3*3. ...

Вывод цифр введённого числа в прямом порядке - C++
Здравствуйте ! Только что сделал программу с выводом цифр введённого числа в обратном порядке. Всё оказалось очень легко. Но над этой...

составить линейную программу (сумма двух первых цифр заданного четырёхзначного числа равна сумме двух его последних цифр) - C++
составить линейную программу , печатающую значение true , если указанное высказывание является истинным , и false - в противном случае. ...

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

Сумма цифр числа - C++
Ребята, подскажите, Какого черта не выводит сумму цифр числа? #include &lt;iostream&gt; using namespace std; int main() { ...

Сумма цифр данного числа - C++
Подсчитать сумму цифр данного числа. Формат входных данных Вводится число. Формат выходных данных Вывести сумму его цифр. Примеры...

Сумма (разность) цифр числа - C++
Помогите, пожалуйста разобраться. Вводим число, например 27 568. Необходимо найти 2-7+5-6+8. Как это осуществить? Как просто сумму всех...

Сумма цифр натурального числа - C++
люди, обясните мне пожалуста как работает ета функция { return n ? n % 10 + suma(n / 10) : 0; } , полностью опишите как ето работает,...

Сумма цифр натурального числа - C++
Нужна помощь по следующей задаче: {Дано натуральное число. Найдите сумму цифр данного числа. Написать рекурсивную функцию} Смотрел в...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
04.04.2011, 18:08     Сумма цифр введённого числа #2
Все будет проще, если вы не будете спещить преобразовывать строку в число.
Кво цифр - это длина строки.
Берете цикл с конца строки до ее начала и каждый последующий символ переводите в число и суммируете.

Например, строка input = 12345.
Длина - 5.
Цикл, счетчик от 4 до 0: преобразуем 5 в число, преобразуем 4 в число ...:
sum = 5+4+3+2+1 = 15
Ответ Создать тему
Опции темы

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