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

ускорение времени выполнения программы - C++

Восстановить пароль Регистрация
Другие темы раздела
C (СИ) Во время выполнения программы вылетает ошибка "The variable 'x' is being used without being initialized" http://www.cyberforum.ru/cpp-beginners/thread1649956.html
нужно найти "y" со значениями от -9 до 9 в итоге я сделал программу, при обработке выдает формула 8*(1-tgx)^ctgx+cosx(x-y) Run-Time Check Failure #3 - The variable 'x' is being used without being initialized #include <stdio.h> #include <math.h> #include <conio.h>
C++ Написать программу которая при нажатии клавиш:правый Shift+ правый Alt блокировала бы клавишу 9 на клавиатуре. Добрый день Необходимо написать программу которая при нажатии клавиш:правый Shift+ правый Alt блокировалась бы клавиша 9 на клавиатуре. http://www.cyberforum.ru/cpp-beginners/thread1649951.html
Чтение чисел через scanf C++
Хоть убей не могу заставить корректно работать функцию scanf. Стоит простая задача: ввести 2 числа и прочитать их. Но по непонятной мне причине нормально считать числа не получается, приходиться пользоваться костылем - читать как строку и преобразовывать ее через функцию atoi, либо вовсе использовать cin (что очень неудобно). Как все таки правильно прописать форматную строку, дабы без танцев...
Что почитать перед тем как изучать C++? C++
Как устроен компьютер? как это все работает? Потому что как только сталкиваюсь с такими понятиями как байт, бит, ячейки памяти, процессор, побитовые операции, многобайтовые кодировки и т.д. начинаю тупить. Нужна литература которая подготовит к изучению этого языка.
C++ Cчитать из файла коэффициенты и вывести на экран то что считали и корни уравнения http://www.cyberforum.ru/cpp-beginners/thread1649849.html
есть а) a|x|=b и б) ax=b обязательно использовать ассоциативный контейнер нужно считать из файла коэффициенты и вывести на экран то что считали и корни построение успешно но консоль пустая вроде считывает из файла помогите с выводом на экран #include <iostream> #include <fstream> #include <string> #include <vector> #include <strstream>
C++ Использование функции fgets, где ошибка? Все привет. В чем может быть ошибка, уже долго сижу и не понимаю. Я сперва со строки беру значение и заношу в файл, затем я хочу вытянуть из файла эту строку и занести в другую строку. Но, видимо, что-то не так происходит, когда я использую ф-ию fgets. После того, как я заношу строку из файла в строку и пытаюсь вывести ее на экран, выводиться просто пустая строка. Символ, типа "=". В общем не... подробнее

Показать сообщение отдельно
Prolamer
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 16
28.01.2016, 20:10     ускорение времени выполнения программы
здравствуйте. решал олимпиадную задачу:

...Он берет произвольное положительное число А и выписывает на доске арифметическую прогрессию с первым членом равным А и разницей, равной также А, то есть имеем последовательность А, А + А, А + 2А, а + 3А, .... Степана интересует первое число данной последовательности, которое является полным кубом некоторого натурального числа. Степан доказал, что для любого натурального числа А в описанной выше арифметической прогрессии существует полный куб некоторого натурального числа.
Например, первый член арифметической прогрессии 2, тогда должны выписать на доске последовательность 2, 4, 6, 8, ... Четвертый член этой арифметической прогрессии является полным кубом числа 2 (8 = 23).
Напишите программу, которая для заданного числа А, определяет минимальное количество членов арифметической прогрессии, которые нужно выписать на доске, чтобы среди них был полный куб некоторого натурального числа.
Входные данные:

Единственная строка входного файла содержит одно целое число А (1 ≤ А ≤ 109).
Выходные данные:

Выходной файл должен содержать одно целое число - минимальное количество членов арифметической прогрессии, которые нужно выписать на доске, чтобы среди них был полный куб.

Пояснение:
Первый пример: четвертый член этой арифметической прогрессии (2, 4, 6, 8, ...) является полным кубом числа 2 (8 = 2^3).
Другой пример: второй член этой арифметической прогрессии (4, 8, ...) является полным кубом числа 2 (8 = 2^3).
Третий пример: первый член этой арифметической прогрессии (125, ...) является полным кубом числа 5 (125 = 5^3).


я написал такой код:
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 <fstream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> ar(10000);
int a=0;
int prog(int a){
    int b =a;
    int c=1;
    while(true){
        c++;
        a+=b;
        if(find(ar.begin(), ar.end(), a) != ar.end()){
            return c;
            break;
        }
    }
}
ofstream fout("interesting.out");
int main(){
    ifstream fin("interesting.in");
    fin>>a;
    for(int i =1; i<=ar.size(); i++){
        ar[i]=pow(i,3);
    }
    if(find(ar.begin(), ar.end(), a) != ar.end())
    {
      fout << 1;
    }
    else{
         fout << prog(a);
    }
    return 0;
}
она рабочий , но время выполнения превышает лимит, указанный в правилах...
какие есть способы ускорить?
надеюсь получить помощь с вашей стороны))
спасибо за внимание.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru