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

Если к сумме цифр двузначного числа прибавить квадрат этой суммы, то снова получится это двузначное число - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать функцию, возвращающую индексы максимального элемента матрицы http://www.cyberforum.ru/cpp-beginners/thread658448.html
создать функцию, возвращающую индексы максимального элемента матрицы. продемонстрировать работу данной функции для матриц А(2;4), В(2;4), C(5;4). Функция должна возвращать несколько значений, для этого использовать ссылки.
C++ Массив: Выделить возрастающую под последовательность элементов наибольшей длины. Задан массив размера N. Выделить возрастающую под последовательность элементов наибольшей длины. http://www.cyberforum.ru/cpp-beginners/thread658446.html
C++ В упорядоченный по невозрастанию массиве
В упорядоченный по невозрастанию массиве инвертировать ту часть, которая образует числа меньше заданного.
C++ Массив: Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные элементы массива В.
Даны массивы целых чисел A и B. Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные элементы массива В.
C++ Найти среднее арифметическое положительных чисел http://www.cyberforum.ru/cpp-beginners/thread658439.html
Найти среднее арифметическое положительных чисел, стоящих на нечетных местах, и подсчитать количество чисел, удовлетворяющих условию 2i<ai<i!
C++ Не происходит запись в файл Доброе время суток! Задача такая надо записать весь перебор 7ми цифр в файл.txt Вроде код правильный,но не записывает. #include<iostream> #include<fstream> using namespace std; void main() { const int size=8; подробнее

Показать сообщение отдельно
freshness
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
27.09.2012, 08:47  [ТС]     Если к сумме цифр двузначного числа прибавить квадрат этой суммы, то снова получится это двузначное число
Цитата Сообщение от Rexer Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
   {
   int n,summ=0;                     
for(n=10; n<=99; n++)      // цикл от 10 до 99 
  {
int j = n;      // ввод переменной для цикла
    while(j)       //  цикл для нахождения суммы цифр числа.
{
          summ += j%10;  // J%10 это цифра берется? 
            j /= 10;   // как это действие производится? И как отсекается цифра от цисла?
  }
  summ += summ*summ;  // все понятно
        if(summ == n)   // все понятно
            cout << n << endl;   // все понятно
    sumDig = 0;
   
   return 0;
   }
}
Разберем ваши вопросы.
У вас есть переменные n,summ.
summ мы зануляем,чтобы при суммировании там не был мусор.
по n мы прогоняем цикл.
j мы вводим,для того,чтобы значение n не затерлось в цикле while,в то время,когда мы будем "отсекать цифры".
Тогда в цикле,пока у нас j не ноль условие стоит.
Операция % берет остаток от деления на числа на число.
Вот у вас число 11.например.
11%10 будет 1,так как это 1 целое и 1 десятая.
по сути %10 "отсекает" от "большого" числа по одному.
Дальше,так как мы уже получили одну первую цифру от числа,то наше число нужно уменьшить на одну позицию.т.е вот есть у нас 11,надо просто отсеять эту единицу.Как это сделать?
Операция / после применения дает нам целое число,не остаток!
т.е 21/10 = 2
11/10 = 1
это как раз и есть наше искомое второе число.
Теперь почему j /= 10;
Для того чтобы изменять само число,ведь то,что мы отсекли нам больше не надо.
Пройдем по каждой итерации числа 21 в цикле while
21%10 = 1
summ += 1;
21/10 = 2;
j = 2;
2%10 = 2;
summ += 2;
2/10 = 0;
j = 0;
выходим из цикла.
После выхода из цикла и проверки числа на ваше условие задачи не забудьте снова ЗАНУЛИТЬ summ,ведь вам еще с ней работать,а там уже от другого числа лежит мусор.
Спасибо большое теперь все отлично понял. А то до этого знал, но постоянно сомневался так или нет. ).
Всем спс за ответы.
 
Текущее время: 02:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru