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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
#1

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

17.11.2012, 09:49. Просмотров 1009. Ответов 12
Метки нет (Все метки)

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

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

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

Найти среди чисел те, которые являются квадратами некоторого числа n - C++
даны целые положительные числа а1,а2,...,an. Найти среди них те, которые являются квадратами некоторого числа n.

Найти Среди чисел те, которые являются квадратами некоторого числа т - C++
Даны целые положительные числа А1, А2,..., Аn. Найти Среди них те, которые являются квадратами некоторого числа т.

Найти числа, которые являются квадратами некоторого другого числа - C++
Помогите написать программу на С++ Вот условие: Даны целые положительные числа а1, а2 ..., а n. Найти среди них те, которые являются...

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

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

Даны целые числа a1, a2, ., an. Получить те положительные числа из этой последовательности, которые являются полными квадратами - C++
ПОМОГИТЕ решить задачу на C++ Заранее спасибо! Даны целые числа a1, a2, ..., an. Получить те положительные числа из этой...

12
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 10:17 #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;
}
//---------------------------------------------------------------------------
1
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
17.11.2012, 11:03  [ТС] #3
Можно чуть объяснений, пожалуйста(((((
0
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 11:14 #4
Там ошибка, в фунции чек переменная должна быть типа double

Мне с телефона не удобно комментировать
1
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
17.11.2012, 11:19  [ТС] #5
спасите меня, как с компа будете пожалуйста. не понимаю
0
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 11:23 #6
Часа через 2. Наверное кто то добрый раньше прокоментирует
1
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
17.11.2012, 11:24  [ТС] #7
Я буду ждать!!
0
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 12:43 #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;
}
вот
1
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
17.11.2012, 13:18  [ТС] #9
огрооооооооооомное спасибо!!!!!

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

Добавлено через 1 минуту
Можете мне реализовать так, чтобы с клавиатуры вводить числа? Пожалуйста
0
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
17.11.2012, 15:46 #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;
}
1
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
30.11.2012, 22:08  [ТС] #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. Написать функцию для вычисления указанных характеристик, передавая в нее один элемент вектора.
0
30.11.2012, 22:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 22:08
Привет! Вот еще темы с ответами:

Создать массив из элементов другого массива, которые являются полными квадратами - C++
В массиве С(100) лежат целые числа. Сформировать новый массив В таким образом, чтобы в него вошли те элементы массива С, которые являются...

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru