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

Единицы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Одномерный массив http://www.cyberforum.ru/cpp-beginners/thread269418.html
Помогите решить задачку Массив целых чисел. Найти количество элементов массива, отличных от последнего элемента. Отсортировать в убывающем порядке, пирамидальным методом. Количество элементов массива вводим с клавиатуры
C++ Вызов функции из потока Добрый день! Есть задание по курсовой: Вызов из разных потоков функций чтения из файла. Функции находятся в DLL. Функции чтения:заголовок, данные. Вот мой код DLL: #include "stdafx.h" #include "n.h" #include <windows.h> http://www.cyberforum.ru/cpp-beginners/thread269417.html
поиск C++
Задание Дано файл вещественных чисел (a1,a2...an) что упорядочены по возрастанию. Найти среди этих чисел элемент равен x^2 (x предварительно задать). Кто подскажет каким поиском искать, и может у кого то есть алгоритм?
C++ Массив в массиве
Доброго вам дня суток ! Меня интересует один вопрос можно ли в одном одномерном мессиве за место элементов использоовать другой массив (символьный) Суть моей задачи записать слова в строку а потом вывести их наоборот от конца к началу . Вот по этому меня и интересует этот вопрос .
C++ функции процедуры пользователя http://www.cyberforum.ru/cpp-beginners/thread269402.html
Всем привет!) Вот дали в технаре задачки по с++, а я болела когда функции и процедуры проходили( 2 задачки можете помочь пожалуйста. 1) Составить программу вычисления значения выражения используя способы програмирования с созданием фунций пользователя Выражение на фото. фрагмент теста программы к 1 задаче(функции) но он не рабочий. это так что нашла в книжке и написала.
C++ cout & printf Можно ли с помощью cout сделать подобное printf("%h\n",15);?? подробнее

Показать сообщение отдельно
kiborg_18
4 / 4 / 0
Регистрация: 21.02.2011
Сообщений: 61
03.04.2011, 17:17     Единицы
Помогите пожалуйста с решением задачи

В арифметическом выражении разрешается использовать число 1, операции сложения, умножения и скобки.
Какое наименьшее количество единиц нужно использовать, чтобы получить заданное натуральное число n?
Технические условия
Входные данные
Одно число n. 1 ≤ n ≤ 5000.
Выходные данные
Искомое количество единиц.
Пример входных данных
7
Пример выходных данных
6

Набросал код, но программа валится на 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
 
int rez=0;
void prime_eratosfen(int *mas, int n); 
void search_primes(int a,int *mas, int n);
int main()
{
 int n=5001,*mas=NULL,a;
 cin >> a;
 rez=0;
 if (a==1) { cout << 1 << endl; return 0; }
 mas=(int*)malloc(n*sizeof(int));
 prime_eratosfen(mas,n); //Определяем все простые числа до заданного
 search_primes(a,mas,n);
 cout << rez << endl;
}
 
void prime_eratosfen(int *mas, int n)
{
 int i,j;
 for (i=0; i<n; i++) mas[i]=i;
 mas[1]=0;
 for (j=2; j<n; j++)
  {
   if (mas[j]!=0)
    {
     for (i=2*j; i<n; i+=j)
      {
       mas[i]=0;
      }
    }
  }
}
 
void search_primes(int a,int *mas, int n)
{
 int j;
 while (1)
  {
   if (mas[a]!=0 && a!=2 && a!=3 && a!=5) { rez++; a--; }
   else
    {
     if (a%2==0) { a/=2; rez+=2; }
     else if (a%3==0) { a/=3; rez+=3; }
     else if (a%5==0) { a/=5; rez+=5; }
     else
      {
       for (j=7; j<n; j++)
        {
         if (mas[j]!=0)
          {
           if (a%mas[j]==0)
            {
             a/=mas[j];
             search_primes(mas[j],mas,n);
            }
          }
        }
      }
    }
   if (a==1) break;
  }
}
Может где-то ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru