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

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

Войти
Регистрация
Восстановить пароль
 
Parilo
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
#1

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

16.10.2012, 21:29. Просмотров 732. Ответов 2
Метки нет (Все метки)

Мне нужно найти сумму квадратов цифр введённого числа.
Допустим ввожу 63, компьютер должен выдавать результат 45, то есть 6*6+3*3.
Составил следующий код, но не знаю где ошибку, компилятор выдаёт при вводе числа 63 результат 15.
Похоже что 3 он перемножает, а 6 просто прибавляет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 #include <iostream>
#include <cmath>
using namespace std;
int main ()
{ int n, i=0, sqr=0;
 cin >> n;
 while (n>0)
 {sqr=sqr+(n%10*n%10);
 n=n/10; i++;
 
 }
  cout << sqr;
 
 
 
 return 0;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 21:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти сумму квадратов цифр введённого числа (C++):

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

Найти сумму квадратов цифр числа,с полученным числом проделаем аналогичную процедуру .Конечный результат 1||4 - C++
Задача №1 int main() { setlocale(LC_ALL,&quot;Russian&quot;); int n,s; s=0; bool f=false; cout&lt;&lt;&quot;Введите число: &quot;;cin&gt;&gt;n; int c=0; ...

Найти сумму делитей. Подсчитать сумму цифр числа. Количество цифр - C++
Друзья,подскажите пожалуйста где ошибка?Цикл не считает сумму делителей числа. #include &lt;iostream&gt; using namespace std; void...

Сумма цифр введённого числа - C++
Создал сабж т.к. решение написано по теме, но не по разделу. По воле администрации сохраняю все исходники в соотв. разделах //...

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

Найти все двузначные числа, сумма квадратов цифр которых делится на 17 - C++
Найти все двузначные числа, сумма квадратов цифр которых делится на 17.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
16.10.2012, 21:35 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 #include <cmath>
 using namespace std;
 int main ()
 { int n, sqr=0;
 cin >> n;
 while (n>0)
 {sqr=sqr+((n%10)*(n%10));
 n=n/10;
 }
 cout << sqr;
 return 0;}
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
16.10.2012, 21:40 #3
компактно без рекурсии:
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 21:40
Привет! Вот еще темы с ответами:

Найти все n-значные числа, сумма квадратов цифр которых кратна М - C++
Найти все n-значные числа, сумма квадратов цифр которых кратна М.

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

От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно - C++
И опять: сколько можно? Задано натуральное число N. От данного числа вычтем сумму цифр этого числа, от полученного числа опять...

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


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

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

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