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

Вывод числа на экран в словесной форме - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ помогите пожалуйста подправить код http://www.cyberforum.ru/cpp-beginners/thread20329.html
C++.Нужно удалить элемент из массива.Выдает ошибку - : error C2105: '--' needs l-value .Подскажить что не так,а то я еще в этом "баран":(. { const int n=5; int a={3,2,7,4,5},i=0; int m;...
C++ Ошибка error C2070: 'unsigned int': illegal sizeof operand Собственно, есть пара вопросов (смотреть в комментариях). Помогите разобраться пожалуйста Заранее спасибо Всем Пример части кода: #include<iostream> using std::cin; using std::cout; http://www.cyberforum.ru/cpp-beginners/thread20323.html
Запутался с циклами C++
хочу что подпрограмка при вводе m=6 выводила 0123 0124 ...
C++ (char)xx и '\xx' - в чём разница?
День добрый. Просто любопытно, почему cout << (char)число; и cout << '\число'; часто дают разный результат?
C++ Опять завал!!! http://www.cyberforum.ru/cpp-beginners/thread20294.html
Данна матрица А нужно переписать ее в матрицу В так, чтобы сначала были все положительные числа, а потом все отрицательные, матрицу задать через random.:wall::wall::wall:
C++ Найти максимальный по площади выпуклый четырехугольник, который можно организовать из точек на плоскости В двухмерном пространстве задается некоторое количество точек . Нужно найти максимальный по площади выпуклый четырехугольник, которых из этих точек можно организовать. з.ы. буду очень благодарен... подробнее

Показать сообщение отдельно
GalaX
697 / 569 / 21
Регистрация: 18.11.2008
Сообщений: 2,153
07.01.2009, 05:11
нафигачил тут класс на пхп... си++ незнаю, но задача была интересная, поэтому полез в пхп
написано конечно не сказать что красиво (сам запутался в этом коде), но вроде работает:
PHP
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
$c = new CHISLO;
echo $c->get_chislo( 1151891 );
 
class CHISLO {
    private $arr = array('', 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять', 'десять',
                         'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать',
                         'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
    private $arr2 = array('', 'сто', 'двести', 'триста', 'четыреста');
    private $ar = array(
        1=>array('тысяч', 'тысяча', 'тысячи', 'тысячи', 'тысячи', 'тысяч', 'тысяч', 'тысяч', 'тысяч', 'тысяч'),
        array('миллионов', 'миллион', 'миллиона', 'миллиона', 'миллиона', 'миллионов', 'миллионов',
              'миллионов', 'миллионов', 'миллионов'),
        array('миллиардов', 'миллиард', 'миллиарда', 'миллиарда', 'миллиарда', 'миллиардов', 'миллиардов',
              'миллиардов', 'миллиардов', 'миллиардов'),
        array('триллионов', 'триллион', 'триллиона', 'триллиона', 'триллиона', 'триллионов', 'триллионов',
              'триллионов', 'триллионов', 'триллионов')
    );
 
    public function get_chislo($ch) {
        if( $ch<1000 )
            return $this->get_100($ch);
        $ch = preg_split('/(?=(\d{3})+(?!\d))/is', $ch, -1, PREG_SPLIT_NO_EMPTY);
        $ch = array_reverse($ch);
        $result[] = $this->get_100($ch[0]);
        for($i=1; $i<count($ch); $i++) {
            @$result[] = $this->get_100($ch[$i]) .' '. $this->ar[$i]{$ch[$i]%10};
        }
        $result[1] = str_replace('один', 'одна', $result[1]);
        $result[1] = str_replace('два', 'две', $result[1]);
        return join(' ', array_reverse($result));
    }
    private function get_100($ch) {
        $c1 = (int)($ch / 100);
        $c2 = $ch % 100;
        if( $c1<5 )
            $result = $this->arr2[$c1];
        else 
            $result = $this->arr[$c1] . 'сот';
        return @$result .' '. $this->get_10($c2);
    }
    private function get_10($ch) {
        $c1 = (int)($ch / 10);
        $c2 = $ch % 10;
        if( $ch<20 ) {
            $result = $this->arr[$ch];
        } else if( $ch<40 ) {
            $result = $this->arr[$c1] . 'дцать';
        } else if( $ch<50 ) {
            $result = 'сорок';
        } else if( $ch<90 ) {
            $result = substr( $this->arr[$c1], 0, -1 ) . 'десят';
        } else if( $ch<100 ) {
            $result = 'девяносто';
        }
        if( $ch>20 && $c2!=0 )
            $result .= ' ' . $this->arr[$c2];
        return $result;
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru