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

Числа Армстронга...Немогу решить - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ метод итераций http://www.cyberforum.ru/cpp-beginners/thread147679.html
ребят помогите пжлст решить задачки: 1. Дана целочисленная прямоугольная матрица. Определить количество строк, содержащих хотя бы один нулевой элемент. Определить номер столбца, в котором...
C++ Нужно написать программу шефрования и дешифрования AES 128 в Microsoft Visual Studio Нужно написать программу шефрования и дешифрования AES 128 в Microsoft Visual Studio Или где можно скачать, нашел только для Delphi а нужно именно на СИ! http://www.cyberforum.ru/cpp-beginners/thread147673.html
Динамические массивы C++
пишу функции по сложению умножению делению и вычитанию полиномов void sub(){ int x,y; cout<<"vvod stepeni A(x): "; cin>>x; cout<<"vvod stepeni B(x): "; cin>>y; double *x1...
Изменение названия файла C++
Здравствуйте! Нужно динамически изменить название файла на с++ напободие такого: #include <stdio.h> #include <fstream> #include <cstdlib> main () { for(int i=0;i<10;i++) {
C++ Построение графика С++ Win32App http://www.cyberforum.ru/cpp-beginners/thread147658.html
Люди добрые, помогите с задачей, пожалуйстааа :) Вроде бы как написала, но стиль окна какой-то кривой, график не точный :( в чем проблема, не знаю :wall: Условие: Нарисовать графики функций:...
C++ Заполнить секторы матрицы Помогите, пожалуйста, очень надо! 1.Вводится последовательность ненулевых чисел, 0 — конец последовательности. Определить является ли последовательность строго возрастающей 2.Заполнить секторы... подробнее

Показать сообщение отдельно
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
20.06.2010, 16:47
ой помню давно баловался с той задачкой, эксперементировал все)

вообщем вот исходник

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
67
68
69
70
71
#include <iostream>
#include <conio.h>
 
using namespace std;
 
unsigned long long NumberToPower(unsigned long long number, unsigned short power);
int Power(long long double in_number);
 
int main()
{
    long long double in_number=0;
    long long double out_number=0;
    unsigned long long next_symb=0;
    long long double sum=0;
 
    cin>>in_number;
    cout<<"Posledovatelnost chisel Armstronga::"<< endl<< endl;
    out_number=in_number;
 
    while (in_number>=0)
    {
       while (out_number>0)
       {
          next_symb=out_number%10;
          out_number=out_number/10;
          sum=sum+NumberToPower(next_symb,Power(in_number));
       }
 
       if (sum==in_number)
       cout<< in_number<< " "<< endl;
       in_number--;
       out_number=in_number;
       sum=0;
    }
    cout<< endl<< "complete";
    getch();
    return 0;
}
 
unsigned long long NumberToPower(unsigned long long number, unsigned short power)
{
    if (power == 1)
    return number;
    if (power == 0)
    return 1;
    return (number*NumberToPower(number,power-1));
}
 
int Power(long long double in_number)
{
    if (in_number<10)
    return 1;
    if ((in_number>9) and (in_number<100))
    return 2;
    if ((in_number>99) and (in_number<1000))
    return 3;
    if ((in_number>999) and (in_number<10000))
    return 4;
    if ((in_number>9999) and (in_number<100000))
    return 5;
    if ((in_number>99999) and (in_number<1000000))
    return 6;
    if ((in_number>999999) and (in_number<10000000))
    return 7;
    if ((in_number>9999999) and (in_number<100000000))
    return 8;
    if ((in_number>99999999) and (in_number<1000000000))
    return 9;
    if ((in_number>999999999) and (in_number<=(sizeof(unsigned int))))
    return 10;
}
можно конечно и по простому, без этой таблички
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
nt Power(long long double in_number)
{
    if (in_number<10)
    return 1;
    if ((in_number>9) and (in_number<100))
    return 2;
    if ((in_number>99) and (in_number<1000))
    return 3;
    if ((in_number>999) and (in_number<10000))
    return 4;
    if ((in_number>9999) and (in_number<100000))
    return 5;
    if ((in_number>99999) and (in_number<1000000))
    return 6;
    if ((in_number>999999) and (in_number<10000000))
    return 7;
    if ((in_number>9999999) and (in_number<100000000))
    return 8;
    if ((in_number>99999999) and (in_number<1000000000))
    return 9;
    if ((in_number>999999999) and (in_number<=(sizeof(unsigned int))))
    return 10;
}
но вычисления раз в 10 долже будут
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru