0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 2
1

Проверить, является ли целое число трёхзначным, является ли оно квадратом

09.10.2014, 03:28. Показов 3607. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите пожалуйста новичку
1) Введите целое число и проверьте, является ли оно трехзначным.
2) Введите целое число и проверьте, является ли оно полным квадратом. Например, полными квадратами являются числа 1, 4, 9, 16 и 25
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2014, 03:28
Ответы с готовыми решениями:

Дано целое число N (> 0). Проверить,является ли оно степенью числа 3. С++
Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является —...

Дано натуральное число n. Выяснить, является ли оно полным квадратом
Дано натуральное число n. Выяснить, является ли оно полным квадратом. Определить функцию,...

While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false.
While. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не...

Дано целое число N(>0). Если оно является степенью числа 3, то вывести TRUE, если не является-вывести FALSE.
Дано целое число N(>0). Если оно является степенью числа 3, то вывести TRUE, если не...

6
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.10.2014, 04:45 2
Цитата Сообщение от Chris717 Посмотреть сообщение
1) Введите целое число и проверьте, является ли оно трехзначным.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
/* variant 1 */
int main()
{
    char c;
    int k = 1;
    
    cin >> c;
    while ((c = getchar()) != '\n')
        ++k;
    
    if (k == 3)
        cout << "YES\n";
    else
        cout << "NO\n";
    
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
/* variant 2 */
int main()
{
    int c;
    int k = 1;
    
    cin >> c;
    while ((c /= 10) > 0)
        ++k;
    
    if (k == 3)
        cout << "YES\n";
    else
        cout << "NO\n";
    
    return 0;
}


Цитата Сообщение от Chris717 Посмотреть сообщение
2) Введите целое число и проверьте, является ли оно полным квадратом. Например, полными квадратами являются числа 1, 4, 9, 16 и 25
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
using namespace std;
 
/* variant 1 */
int main()
{
    int c;
    cin >> c;
    
    if (c == pow(c, 0.5) * pow(c, 0.5))
        cout << "YES\n";
    else
        cout << "NO\n";
    
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
using namespace std;
 
/* variant 2 */
int main()
{
    int c;
    cin >> c;
    
    if (c == sqrt(c) * sqrt(c))
        cout << "YES\n";
    else
        cout << "NO\n";
    
    return 0;
}
0
Модератор
Эксперт С++
13245 / 10387 / 6210
Регистрация: 18.12.2011
Сообщений: 27,785
09.10.2014, 09:14 3
Небольшой нюанс по:
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
if (c == sqrt(c) * sqrt(c))
компилируется с такой ошибкой
error C2668: sqrt: неоднозначный вызов перегруженной функции
Требуется явное приведение к double
C++
1
 if (c == sqrt((double)c) * sqrt((double)c))
0
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 2
09.10.2014, 11:10  [ТС] 4
огромное спасибо
Еще не знаете, есть какая-нибудь литература по с++, что боле менее досконально все было объяснено?
0
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.10.2014, 13:25 5
Цитата Сообщение от zss Посмотреть сообщение
компилируется с такой ошибкой
А вы не Visual Studio используете? У меня GNU C++11, и всё отлично компилируется.
0
Модератор
Эксперт С++
13245 / 10387 / 6210
Регистрация: 18.12.2011
Сообщений: 27,785
09.10.2014, 13:31 6
Тут нюанс такой. В чистом С нет перегрузки, а есть одна функция sqrt(double),
и компилятор сам приводит int к double.
В С++ их три: sqrt(double),sqrt(float),sqrt(long double).
Вот компилятор и не понимает - к которой из них приводить.
0
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
09.10.2014, 15:33 7
Можно всё расписать:

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
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
 
int digit(int number) {
    int places = 0;
    
    if ( number == 0 ) {
        number = 1;
    }
    for ( int counter = 1; counter <= number; counter *= 10 ) {
        places += 1;
    }
    if ( places == 3 ) {
        return 1;
    }
    return 0;
}
 
int square(int number) {
    for ( int i = 1; i*i <= number; i++ ) {
        if ( i * i == number ) {
            return 1;
        }
    }
    return 0;
}
 
int main() {
    int number;
    
    std::cin >> number;
    
    if ( number < 0 ) {
        number *= -1;
    }
    
    if ( digit(number) ) {
        std::cout << "It's a three-digit number." << std::endl;
    } else {
        std::cout << "It's NOT a three-digit number." << std::endl;
    }
    
    if ( square(number) ) {
        std::cout << "It's a full-square number." << std::endl;
    } else {
        std::cout << "It's NOT a full-square number." << std::endl;
    }
    
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2014, 15:33
Помогаю со студенческими работами здесь

Проверить является ли число квадратом
Проверить,N - квадрат числа?Если да,вывести его sqrt.Если нет - ближайший квадрат.

Дано целое число N (> 1). Если оно является простым
Дано целое число N (&gt; 1). Если оно является простым, то есть не имеет положительных делителей,...

Как проверить является ли число точным квадратом?
как проверить является ли число точным квадратом?

Проверить является ли введенное число точным квадратом
Помогите пожалуйста Проверить введенное число точным квадратом. с помощью функций Добавлено...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru