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

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

Восстановить пароль Регистрация
 
Parilo
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
16.10.2012, 21:29     Найти сумму квадратов цифр введённого числа #1
Мне нужно найти сумму квадратов цифр введённого числа.
Допустим ввожу 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++ Сумма цифр введённого числа
Найти все двузначные числа, сумма квадратов цифр которых делится на 17 C++
Найти трехзначные числа, сумма квадратов этих цифр равняется самому числу. C++
Найти все двузначные числа, сумма квадратов цифр которых кратна M C++
C++ Найти сумму делитей. Подсчитать сумму цифр числа. Количество цифр
C++ Вывод цифр введённого числа в прямом порядке
C++ Найти сумму цифр введённого числа
Найти все n-значные числа, сумма квадратов цифр которых кратна М C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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++
 Аватар для Thinker
4215 / 2189 / 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;
}
Yandex
Объявления
16.10.2012, 21:40     Найти сумму квадратов цифр введённого числа
Ответ Создать тему
Опции темы

Текущее время: 14:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru