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

Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49). - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.73
T-killer
1 / 1 / 0
Регистрация: 02.05.2012
Сообщений: 18
23.05.2012, 06:39     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49). #1
1. Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49).
2. Дано натуральное число n. Определите, является ли оно степенью числа 2, и выведите слово YES, если является и слово NO, если не является.
3. Для данного натурального числа n определите такое наименьшее целое k, что 2k≥n. Например, при вводе числа 7 программа должна вывести 3.
4. В первый день спортсмен пробежал X километров, а затем он каждый день увеличивал пробег на 10% от предыдущего значения. По данному числу Y определите номер дня, когда суммарный пробег спортсмена составит не менее Y километров. Например, при вводе X=10,Y=100 программа должна вывести 8.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2012, 06:39     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49).
Посмотрите здесь:

C++ Функция, которая при вводе натурального числа выводит количество цифр в нем и их сумму
C++ надо изменить его так чтобы он находил сумму любых введёных чисел и при вводе числа 0 программа завершалась
C++ точные квадраты
Введены 2 числа,программа находит наименьшие и выводит ряд натуральных чисел.Цикл C++
Вывести квадраты натуральных чисел, которые меньше указаного числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mashka_mulashka
 Аватар для Mashka_mulashka
22 / 22 / 4
Регистрация: 13.12.2011
Сообщений: 721
23.05.2012, 09:47     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49). #2
2-я задача.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int main()
{
    int n;//объявили n
    cout << "entr n" << endl;//приглашение ввести n
    cin >> n;//ввели n
    if(n%2!=0)//проверка, если число изначально не кратное двум, то просто выводим "NO"
    {
        cout << "NO" << endl;
        system("pause");
    }
    else//если число кратное двум
    {
        while(n>2)//делим n на два, пока оно не станет меньше двойки.
            n=n/2;
    if(n/2==1)// числа, которые являются степенью двойки в конечном итоге пройдут через это условие.
        cout << "YES" << endl;
    if(n%2!=0)//числа, которые не являются степенью двойки в конечном итоге пройдут через это условие.
        cout << "NO" << endl;
    system("pause");
    }
}
Добавлено через 3 минуты
Цитата Сообщение от T-killer Посмотреть сообщение
3. Для данного натурального числа n определите такое наименьшее целое k, что 2k≥n. Например, при вводе числа 7 программа должна вывести 3.
.
может быть условие, что 2k<=n??? т.к. если n=7, а k=3, то условие 2k>=n не выполнится.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.05.2012, 09:49     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49). #3
Mashka_mulashka, неправильно будет считать:
Хоть число является степенью двойки, хоть не является, Вы этим условием:
C++
1
2
        while(n>2)//делим n на два, пока оно не станет меньше двойки.
            n=n/2;
достигните всегда n равное 1
Mashka_mulashka
 Аватар для Mashka_mulashka
22 / 22 / 4
Регистрация: 13.12.2011
Сообщений: 721
23.05.2012, 09:52     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49). #4
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Mashka_mulashka, неправильно будет считать:
Хоть число является степенью двойки, хоть не является, Вы этим условием:
C++
1
2
        while(n>2)//делим n на два, пока оно не станет меньше двойки.
            n=n/2;
достигните всегда n равное 1
нет, проверьте себя еще раз

т.к. нечетные числа отсекуться в самом начале проги, то их нет смысла даже вводить.поэтому мы имеем только четные числа.все числа, которые не являются степенью двойки по этому условию окажуться равными числу 1, а которые являются степенью двойки, окажуться равными числу два
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.05.2012, 10:02     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49). #5
Цитата Сообщение от Mashka_mulashka Посмотреть сообщение
т.к. нечетные числа отсекуться в самом начале проги, то их нет смысла даже вводить.поэтому мы имеем только четные числа.все числа, которые не являются степенью двойки по этому условию окажуться равными числу 1, а которые являются степенью двойки, окажуться равными числу два
немного не точно выразился - не всегда будет, но при некоторых значениях будет:
проверяйте: 18
Mashka_mulashka
 Аватар для Mashka_mulashka
22 / 22 / 4
Регистрация: 13.12.2011
Сообщений: 721
23.05.2012, 10:08     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49). #6
ну дая лошараможет быть потому, что писала на скорую руку
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.05.2012, 10:13     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49). #7
Mashka_mulashka, давайте я подскажу один способ, а Вы его реализуете:
вводите n, затем:
C++
1
2
while(n%2==0)
n/=2;
теперь если n не равно 1, то NO.
Если равно 1 то YES
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2012, 11:03     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49).
Еще ссылки по теме:

Почему при вводе чисел в ответе выводит #INF C++
Выяснить, есть ли среди данных 10 чисел точные квадраты C++
Найти среди данного набора чисел точные квадраты C++

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
23.05.2012, 11:03     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49). #8
2.
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
   int value = 4;
   bool result = value & (value - 1);
   std::cout << (result ? "NO" : "YES") << std::endl;
}
Добавлено через 4 минуты
1.

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
#include <iostream>
 
template<int N, int Max>
struct Square
{
   static void apply()
   {
      if (N*N < Max)
      {
         std::cout << N*N << std::endl;
         Square<N+1, Max>::apply();
      }
      else
      {
         Square<Max, Max>::apply();
      }
   }
};
 
template<int Max>
struct Square<Max, Max>
{
   static void apply()
   {
   }
};
 
template<int Max>
void square()
{
   Square<2, Max>::apply();
}
 
int main()
{
   square<50>();
}
Yandex
Объявления
23.05.2012, 11:03     Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49).
Ответ Создать тему
Опции темы

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