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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ По введенному номеру года получить его название по старояпонскому календарю. http://www.cyberforum.ru/cpp-beginners/thread672816.html
В старояпонском календаре был принят двенадцатилетний цикл, годы внутри которого назывались соответственно: крыса, корова, тигр, заяц, дракон, змея, лошадь, овца, обезьяна, петух, собака и свинья. По...
C++ Составить функцию вычисления суммы с точностью эпсилон Даны действительные числа x, эпсилон(x не равно 0, 1 больше или равно эпсилон больше 0). Составить функцию вычисления суммы с точностью эпсилон и последнего слагаемого, включенного в сумму: ... http://www.cyberforum.ru/cpp-beginners/thread672812.html
C++ Составить функцию, которая вычисляет сумму K слагаемых
Помогите плиз!!! Дали задание лабу сделать, но не знаю как! Составить функцию, которая вычисляет сумму К слагаемых В вызывающей функции main() организовать контроль ввода ...
Вычислить сумму функций C++
Вот я написал программу но почему-то не воспринимает sin cos pow, почему оно не хочет их принять?? #include<iostream> #include<math.h> #include<conio.h> using namespace std; float...
C++ Вычислить сумму ряда http://www.cyberforum.ru/cpp-beginners/thread672798.html
в общем есть 3 задачи,так как я совсем чайник прошу помощи: 2.Выполнить следующие вычисления: а) задавая x и n (число членов суммы ряда), найти сумму S и δ=|s-f(x)| ; б) задавая x и n (число...
C++ Заполнить матрицу элементами по схеме в общем есть 3 задачи,так как я совсем чайник прошу помощи: 3.3. Дан одномерный массив целых чисел А размерностью 64. По-лучить квадратную матрицу порядка 8 ,элементами которой являются числа... подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
16.10.2012, 21:40
компактно без рекурсии:
C++
1
2
3
4
5
6
7
long Sum(long a)
{
   long sum = (a % 10) * (a % 10);
   while(a /= 10)
      sum += (a % 10) * (a % 10);
   return sum;
}
экономия операций:
C++
1
2
3
4
5
6
7
long Sum(long a)
{
   long sum = (a % 10) * (a % 10), buf;
   while(a /= 10)
      sum += (buf = a % 10) * buf;
   return sum;
}
Банальная рекурсия:
C++
1
2
3
4
long Sum(long a)
{
   return a ? (a % 10) * (a % 10) + Sum(a / 10) : 0;
}
Рекурсия с экономией операций:
C++
1
2
3
4
5
long buf;
long Sum(long a)
{
   return a ? (buf = a % 10) * buf + Sum(a / 10) : 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru