powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Програмка на С++
5 сообщений из 5, страница 1 из 1
Програмка на С++
    #33343882
Фотография gang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите написать программу на C++

Даны числа m и n. Найти все числа в интервале [n,m] сумма цифр в k-той степени которых равны самим числам. Пример (153=1+125+27).
СПАСИБО!:)
...
Рейтинг: 0 / 0
Програмка на С++
    #33343892
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GangПомогите написать программу на C++

Даны числа m и n. Найти все числа в интервале [n,m] сумма цифр в k-той степени которых равны самим числам. Пример (153=1+125+27).
СПАСИБО!:)

а где в примере степень ?
...
Рейтинг: 0 / 0
Програмка на С++
    #33343941
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik GangПомогите написать программу на C++

Даны числа m и n. Найти все числа в интервале [n,m] сумма цифр в k-той степени которых равны самим числам. Пример (153=1+125+27).
СПАСИБО!:)

а где в примере степень ?
Ну, это-то как раз просто:
153=1^3+5^3+3^3=1+125+27, т.е. k=3....

Задача, ИМХО, решается полным перебором:
Берешь число, потрошишь его на цифры, возводишь каждую цифру в нужную степень, получаешь сумму, которую сравниваешь с исходным числом.
Если получено совпадение, то выводишь это число, например, на экран
Делаешь то же самое для следующего числа из интервала...

Самое "сложное" в реализации данного алгоритма - выделить отдельные цифры из числа. На С++ это можно сделать так:
1. Переводишь число в символьную форму (строку, массив символов) при помощи функций itoa() или _i64toa()
1а. Определяешь длину получившейся строки при помощи strlen()
2. Выбираешь число из строки как из массива, т.е. symbol=a[j];
3. Выполняешь обратное преобразование (символ->число) при помощи функции atoi()
Про все функции написано в хелпе. Дерзай, Студент...
...
Рейтинг: 0 / 0
Програмка на С++
    #33343950
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C.возводишь каждую цифру в нужную степеньили в каждую степень (ну до определенного предела, пока результат сложения не превысит исходное число) ? в условии нет, в какую степень возводить ...
Станислав C.1. Переводишь число в символьную форму (строку, массив символов) при помощи функций itoa() или _i64toa()
1а. Определяешь длину получившейся строки при помощи strlen()
2. Выбираешь число из строки как из массива, т.е. symbol=a[j];
3. Выполняешь обратное преобразование (символ->число) при помощи функции atoi()КГ/АМ !
Числа попадают программу я так понимаю ручным вводом, т.е. строками, ну дак и храни их в строках, перебор чисел по порядку несложно будет организавать и для строк, это исключит лишнее преобразование числа в строку, к тому же во время просмотра цифр числа, представленного строкой, можно сразу и посчитать собственно число, не взывая к atoi.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Програмка на С++
    #33348257
написал на С по привычке, на С++ перевести не сложно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#include <stdio.h>
int main()
{
    int n,m,k,i,j,l,t1,t2,t3;
    scanf("%d %d %d",&n,&m,&k);
    for (i=n;i<=m;i++)
    {
        t1= 0 ;
        for (j=i;j> 0 ;j/= 10 )
        {
            t3= 1 ;
            t2=j-j/ 10 * 10 ;
            for (l= 0 ;l<k;l++)
                t3*=t2;
            t1+=t3;
        }
        if (t1==i)
            printf("%d\n",i);
    }
}
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Програмка на С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]