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

Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа - C++

Восстановить пароль Регистрация
 
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
17.11.2012, 09:49     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #1
Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа.
пример: 2 5 4 19 25 4625 121 144 0
рез-т: 4*25*121*144=1742400

Максим количество чисел неизвестно, поэтому последовательность необходимо поместить в вектор.Послед-ть чисел должна завершаться 0. Написать функцию для вычисления указанных характеристик, передавая в нее один элемент вектора.

Помогите, пожалуйста!! Буду очень благодарна! не могу я понять вообще как делается это!((((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 09:49     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа
Посмотрите здесь:

Создать массив из элементов другого массива, которые являются полными квадратами C++
Найти среди чисел те, которые являются квадратами некоторого числа n C++
C++ Найти Среди чисел те, которые являются квадратами некоторого числа т
C++ Найдите сумму первых n натуральных чисел, которые являются полными квадратами
Даны целые положительные числа аь а2,., а„. Найти среди них те, которые являются квадратами некоторого числа т C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 10:17     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #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
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <string>
using namespace std;
#include <iostream>
#include <vector>
#include <fstream>
#include <math.h>
bool check(int a)
{
    int t;
    t=sqrt((int)a);
    if (t*t==a) return true;
    else return false;
}
int _tmain(int argc, _TCHAR* argv[])
{
    ifstream ifst("123.txt");
    vector <int> v;
    int temp;
    int s=1;
    while(!ifst.eof())
    {
        ifst>>temp;
        if(temp!=0) v.push_back(temp);
    }
         for(int j=0; j<v.size(); j++)
         {
             if(check(v[j]) && v[j]<=4000) s*=v[j];
             cout<<v[j]<<"*";
         }
         cout<<" = "<<s;
 
 
        system("pause");
    return 0;
}
//---------------------------------------------------------------------------
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
17.11.2012, 11:03  [ТС]     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #3
Можно чуть объяснений, пожалуйста(((((
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 11:14     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #4
Там ошибка, в фунции чек переменная должна быть типа double

Мне с телефона не удобно комментировать
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
17.11.2012, 11:19  [ТС]     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #5
спасите меня, как с компа будете пожалуйста. не понимаю
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 11:23     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #6
Часа через 2. Наверное кто то добрый раньше прокоментирует
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
17.11.2012, 11:24  [ТС]     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #7
Я буду ждать!!
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 12:43     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #8
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 <string>
using namespace std;
#include <iostream>
#include <vector>
#include <fstream>
#include <math.h>
bool check(int a) //функция проверяет является ли число квадратом натурального
{
    double t;
    t=sqrt((int)a);
    if (t*t==(double)a) return true; // если посчитать кррень полученного t и возвести обратно в квадрат, должно получиться то же самое число. если да, возвращает истину(1)
    else return false; //если не совпали, возвращает ложь(0)
 
}
int _tmain(int argc, _TCHAR* argv[])
{
    ifstream ifst("123.txt"); //открываем файл для чтения последовательности(вы не указали откуда брать саму последовательность, поэтому сделал через файл
    vector <int> v; //объявляем вектор 
    int temp; //временная переменная для считывания из файла
    long long int s=1; //сюда сохранится произведение нужных чисел из последовательности. лонглонг это потому что произведение может быть очень большим числом и не влезть в простой int 
    while(!ifst.eof()) //пока не конец файла
    {
        ifst>>temp; //взять из файла(потока) число до разделителя(по умолчанию до пробела, как у нас)
        if(temp!=0) v.push_back(temp); //если это не 0(конец последовательности) то добавить это число в вектор
    }
         for(int j=0; j<v.size(); j++)
         {
             if(check(v[j]) && v[j]<=4000) s*=v[j]; //если число из вектора является квадратом натурального и меньше 4000, накапливаем произведение s=s*v[j]
             cout<<v[j]<<"*"; //записываем это число
         }
         cout<<" = "<<s; //выводим произведение
 
 
        system("pause"); //это для "нажмите любую клавишу"
    return 0;
}
вот
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
17.11.2012, 13:18  [ТС]     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #9
огрооооооооооомное спасибо!!!!!

Добавлено через 2 минуты
а можно сделать так, чтобы последовательность вводить с клавиатуры???(
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 13:31     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #10
Int temp=1;
While (temp)
{
Cin>>temp;
If(temp<=4000 && temp!=0) v.push_back(temp);
}
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
17.11.2012, 13:57  [ТС]     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #11
Простите меня((((((((((( но куда это я вставляю(?????

Добавлено через 1 минуту
Можете мне реализовать так, чтобы с клавиатуры вводить числа? Пожалуйста
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 15:46     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #12
Цитата Сообщение от Валя007 Посмотреть сообщение
Простите меня((((((((((( но куда это я вставляю(?????

Добавлено через 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
using namespace std;
#include <iostream>
#include <vector>
 
#include <math.h>
bool check(int a) //функция проверяет является ли число квадратом натурального
{
    double t;
    t=sqrt((int)a);
    if (t*t==(double)a) return true; // если посчитать кррень полученного t и возвести обратно в квадрат, должно получиться то же самое число. если да, возвращает истину(1)
    else return false; //если не совпали, возвращает ложь(0)
 
}
int _tmain(int argc, _TCHAR* argv[])
{
   
    vector <int> v; //объявляем вектор 
    int temp=1; //временная переменная для считывания из файла
    long long int s=1; //сюда сохранится произведение нужных чисел из последовательности. лонглонг это потому что произведение может быть очень большим числом и не влезть в простой int 
   
    while (temp)
    {
    cin>>temp;
    if(temp<=4000 && temp!=0) v.push_back(temp);
    }
         for(int j=0; j<v.size(); j++)
         {
             if(check(v[j]) && v[j]<=4000) s*=v[j]; //если число из вектора является квадратом натурального и меньше 4000, накапливаем произведение s=s*v[j]
             cout<<v[j]<<"*"; //записываем это число
         }
         cout<<" = "<<s; //выводим произведение
        system("pause"); //это для "нажмите любую клавишу"
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 22:08     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа
Еще ссылки по теме:

C++ Даны целые числа a1, a2, ., an. Получить те положительные числа из этой последовательности, которые являются полными квадратами
Найти числа, которые являются квадратами некоторого другого числа C++
Найти все элементы массива, которые являются точными квадратами, и посчитать их произведение C++

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

Или воспользуйтесь поиском по форуму:
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
30.11.2012, 22:08  [ТС]     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа #13
// labababa.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <vector>

using namespace std;

int polkv(long A)
{
for(long d=1; d<=A/2; d++)
if (d*d==A)
return 1;
return 0 ;
};

int _tmain(int argc, _TCHAR* argv[])
{
vector <int> v1;
int a,i;

cin>>a;
while(a!=0){
v1.push_back(a);
cin>>a;}
for(i=0;i<v1.size();++i)
cout<<v1[i]<<" ";

int s=0;
for(i=0;i<v1.size();++i)
if((v1[i]<=4000)&&(polkv(v1[i])==1))s=s*v1[i];
cout<<s;


getch();
return 0;
}


Не работает почему-то. подскажите.

Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа.
пример: 2 5 4 19 25 4625 121 144 0
рез-т: 4*25*121*144=1742400

Максим количество чисел неизвестно, поэтому последовательность необходимо поместить в вектор.Послед-ть чисел должна завершаться 0. Написать функцию для вычисления указанных характеристик, передавая в нее один элемент вектора.
Yandex
Объявления
30.11.2012, 22:08     Найти произведение чисел, которые не превосходят 4000 и являются полными квадратами некоторого натурального числа
Ответ Создать тему
Опции темы

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