Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
1

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

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

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

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

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

Найти сумму делитей. Подсчитать сумму цифр числа. Количество цифр
Друзья,подскажите пожалуйста где ошибка?Цикл не считает сумму делителей числа. #include...

2
Эксперт С++
4710 / 2535 / 753
Регистрация: 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;}
1
Эксперт С++
4256 / 2230 / 203
Регистрация: 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;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2012, 21:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

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

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

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


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

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

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