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

Найти все трёхзначные числа - C++

Восстановить пароль Регистрация
 
Dimaskorik
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 28
01.11.2010, 10:27     Найти все трёхзначные числа #1
Задача: Найти всё трёхзначные натуральные числа, равные сумме кубов своих цифр.
Обязательно: В коде использовать цикл.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2010, 10:27     Найти все трёхзначные числа
Посмотрите здесь:

C++ Найти все трёхзначные числа
C++ Найти все трехзначные числа, в которых все цифры различны.
C++ Разбить двух/трехзначные числа на два столбца: в одном двузначные, во втором трёхзначные
C++ Найти в символьном массиве трёхзначные числа
C++ Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2, 3, 4, 5, 6, 7, 8, 9
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aferook
3 / 3 / 0
Регистрация: 31.10.2010
Сообщений: 13
01.11.2010, 10:43     Найти все трёхзначные числа #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int cube(int a){
    return a*a*a;
}
 
int chislo(int c1,int c2,int c3){
    return c1*100+c2*10+c3;
}
 
int main(int argc, _TCHAR* argv[])
{
    for (int c1=1;c1<9;c1++)
        for (int c2=0;c2<9;c2++)
            for (int c3=0;c3<9;c3++){
                if (cube(c1)+cube(c2)+cube(c3)==chislo(c1,c2,c3)){
                    printf("Found %d%d%d\n",c1,c2,c3);
                }
            }
    return 0;
}
Dimaskorik
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 28
01.11.2010, 10:48  [ТС]     Найти все трёхзначные числа #3
Цитата Сообщение от aferook Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int cube(int a){
    return a*a*a;
}
 
int chislo(int c1,int c2,int c3){
    return c1*100+c2*10+c3;
}
 
int main(int argc, _TCHAR* argv[])
{
    for (int c1=1;c1<9;c1++)
        for (int c2=0;c2<9;c2++)
            for (int c3=0;c3<9;c3++){
                if (cube(c1)+cube(c2)+cube(c3)==chislo(c1,c2,c3)){
                    printf("Found %d%d%d\n",c1,c2,c3);
                }
            }
    return 0;
}
Большое спасибо. Можно немного по проще код чтобы я мог разобраться...
aferook
3 / 3 / 0
Регистрация: 31.10.2010
Сообщений: 13
01.11.2010, 10:56     Найти все трёхзначные числа #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
//Функция считает куб числа
int cube(int a){
        return a*a*a;
}
 
//Функция  по трем ЦИФРАМ возвращает ЧИСЛО (например 3 цифры 1, 2, 5 - значит число будет 125)
int chislo(int c1,int c2,int c3){
        return c1*100+c2*10+c3;
}
 
 
int main(int argc, _TCHAR* argv[])
{
//3 вложенных цикла для перебора всех трехзначных цифр (кроме начинающихся с нуля, они не трехзначные
        for (int c1=1;c1<9;c1++)
                for (int c2=0;c2<9;c2++)
                        for (int c3=0;c3<9;c3++){
//Если сумма кубов цифр равна числу из этих цифр, то:
                                if (cube(c1)+cube(c2)+cube(c3)==chislo(c1,c2,c3)){
//Печатаем это число
                                        printf("Found %d%d%d\n",c1,c2,c3);
                                }
                        }
        return 0;
}
Dzhej-Dzhej
Заблокирован
01.11.2010, 11:00     Найти все трёхзначные числа #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <conio.h>
#include <iostream>
using namespace std;
void main()
{
    for(int i=1;i<10;i++)
        for(int j=0;j<10;j++)
            for(int k=0;k<10;k++)
                if(i*i*i + j*j*j + k*k*k == i*100 + j*10 + k)
                    cout<< i*100 + j*10 + k <<endl;
    getch ();
}
так проще?
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
01.11.2010, 11:20     Найти все трёхзначные числа #6
еще вариант
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 <sstream>
 
std::string toString(int val){
    std::ostringstream oss;
    oss << val;
    return oss.str();
}
 
int SumCube3(int number){
      int s=0;
      int ost = 0;
      int x=number;
      while (x!=0)
      {
          ost = x % 10;
          s += ost*ost*ost;
          x /= 10;
      }
      return s;
}
 
 
int main()
{
    const int value = 3;
    for (int i = 1; i < 10000; ++i){
        if (toString(i).size() == value){
            if (SumCube3(i) == i)
            std::cout << i << std::endl;
        }
    }
 
 
    return 0;
}
KpeHDeJIb
 Аватар для KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
01.11.2010, 11:36     Найти все трёхзначные числа #7
Все гораздо проще:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main()
{
    int i, n1, n2, n3;
 
    for (i = 100; i < 1000; ++i)
    {
        n1 = i % 10;
        n2 = (i / 10) % 10;
        n3 = i / 100;
 
        if ((n1 * n1 * n1) + (n2 * n2 * n2) + (n3 * n3 * n3) == i)
            printf("%d = %d^3 + %d^3 + %d^3\n", i, n3, n2, n1);
    }
 
    return 0;
}
Dimaskorik
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 28
01.11.2010, 13:24  [ТС]     Найти все трёхзначные числа #8
Цитата Сообщение от KpeHDeJIb Посмотреть сообщение
Все гораздо проще:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main()
{
    int i, n1, n2, n3;
 
    for (i = 100; i < 1000; ++i)
    {
        n1 = i % 10;
        n2 = (i / 10) % 10;
        n3 = i / 100;
 
        if ((n1 * n1 * n1) + (n2 * n2 * n2) + (n3 * n3 * n3) == i)
            printf("%d = %d^3 + %d^3 + %d^3\n", i, n3, n2, n1);
    }
 
    return 0;
}
Прям в тему
Большое спасибо всем кто помогал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2010, 13:58     Найти все трёхзначные числа
Еще ссылки по теме:

Напечатать на экране все трёхзначные числа, кратные заданному числу C++
C++ Найти все простые трёхзначные числа
C++ Найти все четырехзначные числа, у которых все цифры различны

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

Или воспользуйтесь поиском по форуму:
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
01.11.2010, 13:58     Найти все трёхзначные числа #9
Всем спасибо за ответ супер!!!!!
Yandex
Объявления
01.11.2010, 13:58     Найти все трёхзначные числа
Ответ Создать тему
Опции темы

Текущее время: 04:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru