Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/43: Рейтинг темы: голосов - 43, средняя оценка - 5.00
45 / 1 / 1
Регистрация: 26.10.2011
Сообщений: 115
1

Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа

09.03.2012, 12:03. Показов 8055. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста!!! А то у меня не получается( Написал программу, когда ввожу число 32 как в примере выводит только 16, а 6 и 23 не выводит(( Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N–1, у которых произведение всех цифр совпадает с произведением цифр данного числа. Если таких чисел нет, то вывести слово «нет». Пример. N = 32. Числа: 6, 16, 23.

Вот сама программа!!!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
int main()
 
{
    int n = 0;
        int i;
        cout << "Enter number: ";
        cin >> i;
            for (int m = 2; m <= i; m += 2)
        n++;
    cout << "number of even numbers = " << n << endl;
    cin.get ();
        cin.get ();
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2012, 12:03
Ответы с готовыми решениями:

Дано натуральное число n. Найти и вывести все числа в интервале от 1 до n − 1, у которых сумма всех цифр совпадает с суммой цифр данного числа.
Дано натуральное число n. Найти и вывести все числа в интервале от 1 до n − 1, у которых...

Найти и вывести все числа в интервале от 1 до N–1, у которых произведение всех цифр совпадает с произведением цифр данного числа
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N–1, у которых произведение...

Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых сумма всех цифр совпадает
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых сумма всех...

Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых сумма всех цифр совпадает
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых сумма всех...

7
Диссидент
Эксперт C
27709 / 17325 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
09.03.2012, 12:55 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int pc(int k)
{ int i, p;
  for(i=0, p=1; k>0; i++) {
     p *= (k%10);
     k /= 10;
  }  
  return p;
}
main()
{ int N, pN,px, i, is;
  cout<<'Введите N";
  cin >> N;
  pN = pc(N); 
  for(i=1, is=0; i<N; i++) 
    if (pc(i)==pN) {
      cout << i;
      is = 1;
    }
   if (is==0) cout<< "Нет";
}
Добавлено через 2 минуты
px - не нужен. Обошелся без него
1
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
09.03.2012, 12:56 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
#include <cstdlib>
#include <iostream>
using namespace std;
 
int mult(int n);
 
int main()
{
    setlocale(LC_ALL, "");
    int number;
    
    cout << "Введите натуральное число: " << endl;
    cin >> number;
 
    bool find = false;
    for (int i = 1; i < number; i++)
    {
        if (mult(i) == mult(number))
        {
            find = true;
            cout << i << endl;
        }
 
    }
 
    if(!find)
    {
        cout << "Такие числа не найдены!" << endl;
    }
 
    return EXIT_SUCCESS;
}
 
int mult(int n)
{
    int temp = 1;
    while (int i = n % 10)
    {
        temp *= i;
        n /= 10;
    }
 
    return temp;
}
3
150 / 64 / 8
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
23.04.2012, 20:50 4
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
#include<iostream>
 
int main(void)
{
    setlocale(LC_ALL,"Russian_Russia.1251");
 
int inum;//вводимое число
 
   while(true)//продолжать цикл пока пользователь не введет безошибочные данные
   {
    std::cout<<"Введите число :";
    std::cin.unsetf(std::ios::skipws);//неигнорировать пробелы
    std::cin>>inum;
 
    if(std::cin.good())//если ошибок нет
    {
        std::cin.ignore(100,'\n');//удалить лишние символы из потока
        break;
    }
    std::cin.clear();//сброс потока
    std::cin.ignore(100,'\n');//удалить лишние символы
    std::cerr<<"Ошибка. Недопустимое значение!"<<std::endl;
   }
 
   int** mas=new int*[inum];//создать массив нужного размера
   for(int i=0;i<inum;i++)//выделение память под каждый элемент
    {
        *(mas+i)=new int;
        **(mas+i) = i+1;  //инициализация массива значениями от 1 до inum
   }
 
   char* chnum = new char [100]; //для хранения числа ввиде строки
   itoa(inum,chnum,10) ; //преобразовать число в массив символов
   int ires=1; //для хранения числа эталона например 32 = 3*2 = 6;
  
   //формирование числа эталона
   for(int i=0;i<strlen(chnum);i++)
   {
       char tempmas[2];//времменный массив для обмена
       tempmas[0]=chnum[i];
       tempmas[1]='\0';
       ires *= atoi(tempmas);
   }
   for(int i=0;i<inum;i++)//поиск элементов массива отвечающих условию задачи
   {
       for(int j=0;j<inum;j++)
       {
           if(*(mas[i])* *(mas[j]) == ires)
            {
                std::cout<<*(mas[i])<<'*'<<*(mas[j])<<" = "<<ires<<std::endl;
            }
 
       }
   }
   std::cout<<std::endl;
    delete []chnum;                                                                                         
   delete []mas;
 
    system("pause");
return 0;
}
Вот как то так
1
45 / 1 / 1
Регистрация: 26.10.2011
Сообщений: 115
23.04.2012, 20:58  [ТС] 5
Спасибо большое!!! Но мы ещё с массивами не работали. А нельзя ли как это с помощью циклов сделать?)) Просто меня препод не поймет) У меня просто не получается эту программу доработать, только одно значение вылазит(
0
150 / 64 / 8
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
23.04.2012, 21:14 6
Я не знаю, может и можно нужнен математический алгоритм, карказ!
0
97 / 72 / 28
Регистрация: 08.10.2011
Сообщений: 130
23.04.2012, 21:35 7
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
#include <iostream.h>
typedef unsigned long int ULONG;
typedef unsigned short int USHORT;
 
ULONG getP(USHORT t);
 
int main()
{
USHORT n,t;
cout << "Enter n ";
cin >> n;
cout << "\nEnter t";
cin >> t;
cout << endl;
if (n>1)
{
for (USHORT i=1;i<=n-1;i++)
{
if (getP(i)==getP(t))
cout << i << " ";
}
}
else
{
cout << "OSHIBKA!";
}
return 0;
}
 
ULONG getP(USHORT t)
{
ULONG p=1;
while(t<>0)
{
p*=t%10;
t=t/10;
}
return p;
}
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12831 / 7568 / 1764
Регистрация: 25.07.2009
Сообщений: 13,960
26.04.2012, 18:40 8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
unsigned natur_product(unsigned n) {
    return ( n ) ? n % 10 * natur_product(n / 10) : 1;
}
 
int main(void) {
    unsigned n;
    
    while ( printf("Number: ") && scanf("%u", &n) == 1 && n > 1 ) {
        unsigned i, cnt = 0, np = natur_product(n);
        for ( i = 1; i < n; ++i )
            if ( natur_product(i) == np && ++cnt )
                printf("%u\n", i);
        if ( ! cnt )
            printf("Nicht!\n");
        printf("\n");
    }
    
    return 0;
}
1
26.04.2012, 18:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2012, 18:40
Помогаю со студенческими работами здесь

Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N–1, у которых сумма всех цифр совпадает с произ
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N–1, у которых сумма всех...

Найти и вывести все числа в интервале от 1 до N - 1, у которых сумма всех цифр совпадает с суммой цифр данного числа
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N - 1, у которых СУММА ВСЕХ...

Найти и вывести все числа в интервале от 1 до N-1, у которых сумма всех цифр совпадает с суммой цифр данного числа.
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых сумма всех...

Найти и вывести все числа в интервале от 1 до N-1, где сумма всех цифр совпадает с суммой цифр данного числа
Дано натуральное число N.Написать функцию,которая находит и выводит все числа в интервале от 1 до...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru