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

Поиск двухзначных чисел - C++

Восстановить пароль Регистрация
 
kissik
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 8
16.06.2014, 19:34     Поиск двухзначных чисел #1
написать программу для поиска двухзначных чисел,таких,что если к сумме цифр этого числа прибавить квадрат этой суммы,то получится это число
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2014, 19:34     Поиск двухзначных чисел
Посмотрите здесь:

Замена двухзначных чисел числительными на русском C++ Builder
C++ Сколько существует двухзначных, положительных чисел, сумма цифр которых равна 15
C++ Поиск двузначных чисел
C++ Найдите сумму, количество и среднее арифметическое всех натуральных двухзначных чисел
Задать массив из 200 целых двухзначных чисел. Вывести на экран повторяющиеся элементы, их индексы, и число повторов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anastasiya_404
38 / 39 / 6
Регистрация: 09.06.2014
Сообщений: 133
16.06.2014, 20:14     Поиск двухзначных чисел #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <locale.h>
int main(int argc, char *argv[]) {
    setlocale(LC_ALL, "RU");
    int sum, number1, number2, squareSum;
    printf("Числа, удовлетворяющие условию:\n");
    for (int i = 10; i < 100; i++) {
        number1 = i / 10;
        number2 = i - (number1 * 10);
        sum = number1 + number2;
        squareSum = sum * sum;
        if (sum + squareSum == i) {
        printf("%i\n", i);
    }
    }
    return 0;
}
RaiaNKnight
 Аватар для RaiaNKnight
96 / 70 / 7
Регистрация: 29.06.2011
Сообщений: 458
Записей в блоге: 1
16.06.2014, 20:30     Поиск двухзначных чисел #3
С математической точки зрения. Пусть a и b - это цифры искомого числа X, т.е. X = a*10 + b.

Тогда исходя из условий задачи получаем следующее равенство:
a+b + (a+b)^2 = a*10 + b.

Упрощая, получим:
(a+b)^2=9a => a+b = 3*sqrt(a). Отсюда b = 3*sqrt(a) - a.

Можно пойти дальше и получить нужные числа.

Добавлено через 5 минут
Собственно, так как корень из a должен быть целым и a <= 9, получим, что возможные a: {1, 4, 9}, а соответствующие им b: {2, 2, 0}.
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
16.06.2014, 21:19     Поиск двухзначных чисел #4
Давненько не программировал, вот мой вариант, можно бы и покороче но как вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <cstdlib>
#include <cmath>
 
using namespace std;
 
int main() {
 int sum = 0, i, a[89], b[89], c[89], d[89];
 
 for(i = 0; i <= 89; i++) {
       a[i] = (i+10) * 1;      // выводим все двузначные числа от 10 до 99
       cout << a[i]<< " ";
 } cout << endl;
 
 for(i = 0; i <= 89; i++) {
       b[i] = a[i] / 10;       // делим на 10 каждое число массива и находим первую цифру двузначного цисла
       cout << b[i] << " ";    // записываем в новый массив
 } cout << endl;
 
 for(i = 0; i <= 89; i++) {
       c[i] = a[i] % 10;       // находим остаток от деления на 10, то есть вторую цифру двузначного цисла
       cout << c[i] << " ";    // записываем в новый массив
 } cout << endl;
 
 for(i = 0; i <= 89; i++) {
       sum = (b[i] + c[i]);
       d[i] = sum + (sum*sum); // производим вычисления соответствующие заданию и записываем числа в новый массив
       if(a[i] == d[i])        // ищем нужные числа
       cout << d[i] << " ";
 }
 
 cout << endl;
 system("pause");
return 0;
    
}
Yandex
Объявления
16.06.2014, 21:19     Поиск двухзначных чисел
Ответ Создать тему
Опции темы

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