Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
4823 / 1498 / 393
Регистрация: 25.04.2010
Сообщений: 4,236
Записей в блоге: 1
1

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

04.04.2011, 15:50. Показов 1358. Ответов 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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2011, 15:50
Ответы с готовыми решениями:

Сумма цифр введенного пользователем числа
Пользователь вводит с клавиатуры натуральное число, проверить корректность ввода, вычислить и...

Проверить является ли сумма цифр введенного трехзначного числа четной
Сумма цифр трехзначного числа является четным числом».

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

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

1
Заблокирован
04.04.2011, 18:08 2
Все будет проще, если вы не будете спещить преобразовывать строку в число.
Кво цифр - это длина строки.
Берете цикл с конца строки до ее начала и каждый последующий символ переводите в число и суммируете.

Например, строка input = 12345.
Длина - 5.
Цикл, счетчик от 4 до 0: преобразуем 5 в число, преобразуем 4 в число ...:
sum = 5+4+3+2+1 = 15
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2011, 18:08

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

Найти и вывести все числа в интервале от 1 до N-1, где сумма всех цифр совпадает с суммой цифр данного числа
Дано натуральное число N.Написать функцию,которая находит и выводит все числа в интервале от 1 до...

Проверить условие: сумма цифр заданного числа N превосходит произведение цифр этого же числа на 1
Составит линейную логическую программу, печатающую значение 1, если указанное высказывание...

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


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

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

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