Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
17 / 17 / 5
Регистрация: 27.11.2011
Сообщений: 141
1
.NET 4.x

Помогите найти ошибку в рекурсии, или переписать программу с использованием List

17.12.2011, 12:34. Показов 590. Ответов 2
Метки нет (Все метки)

Программа переводит цифры и числа введённые с клавиатуры в слова
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication19
{
    class Program
    {
        static void Main(string[] args)
        {
           
            ConvertToString v = new ConvertToString(vvod());
            v.To_Stroka(0);
            
        } 
         static ulong vvod()
            {
            ulong x = ulong.MinValue;
             
             do{
                 Console.WriteLine(",kfkfkfk >> ");
             }while(!ulong.TryParse(Console.ReadLine(),out x));
             return x;  
         }
    }
}
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication19
{
    class ConvertToString
    {
        ulong X;
 
        public ulong x
        {
            get { return this.X; }
            set { this.X = value; }
        }
 
        public ConvertToString(ulong v)
        {
            this.x = v;
 
        }
 
        public string To_Stroka(int exp)
        {
            string [] first_19 = {
                                  "",
                                  "один ",
                                  "два ",
                                  "три ",
                                  "четыре ",
                                  "пять ",
                                  "шесть ",
                                  "семь ",
                                  "восемь ",
                                  "девять ",
                              "десять ",
                              "одиннадцать ",
                              "двенадцать ",
                              "тринадцать ",
                              "четырнадцать ",
                              "пятнадцать ",
                              "шестнадцать ",
                              "семнадцать ",
                              "восемнадцать ",
                              "девятнадцать "};
 
            string[] desiatki = {
                                "",
                                "",
                                "двадцать ",
                                "тридцать ",
                                "сорок ",
                                "пятьдесят ",
                                "шестьдесят ",
                                "семьдесят ",
                                "восемьдесят ",
                                "девяносто "
                            };
 
            string[] sotni = {
                                    "",
                                    "сто ",
                                    "двести ",
                                    "триста ",
                                    "четыреста ",
                                    "пятьсот ",
                                    "шестьсот ",
                                    "семьсот ",
                                    "восемьсот ",
                                    "девятьсот "
                            };
 
            string[,] drugie = { 
                                   {"","" ,""},
                                  {"тысяча ", "тысячи ", "тысяч "},
                                  {"миллион ", "миллиона ", "миллионов "},
                                  {"миллиард ", "миллиарда ", "миллиардов "},
                                  {"триллион ", "триллиона ", "триллионов "},
                                  {"триллиард ", "триллиарда ", "триллиардов "}
                              };
 
            if (x == 0)
            {
                if (exp == 0)
                {
                    return "ноль " + drugie[0, 1];
                }
            }
 
            int remainder = (int)(x % 1000);
 
            string higher = To_Stroka(exp + 1);
 
            if (remainder == 0 && exp != 0)
            {
                return higher;
            }
 
            string result = sotni[remainder / 100];
            result += desiatki[remainder % 100 / 10];
            if ((exp == 0) && remainder % 10 + remainder / 10 % 10 != 1)
            {
                result += first_19[remainder % 10 + (remainder / 10 % 10 == 1 ? 10 : 0)];
            }
            result += drugie[exp, rasschet(remainder % 100)];
 
            return higher + result;
        }
 
        static int rasschet(int x)
        {
            if (x / 10 != 1)
            {
                if (x % 10 == 1)
                {
                    return 0;
                }
                else if (1 <= x % 10 && x % 10 <= 4)
                {
                    return 1;
                }
            }
 
            return 2;
        }
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2011, 12:34
Ответы с готовыми решениями:

Помогите найти ошибку или переписать программу!
Здравствуйте! Никак не могу справиться с одной задачей. Я и несколько одногруппников &quot;прокрутили в...

Переписать программу с использованием рекурсии
Сделать через рекурсию #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; #include...

Вычисление факториала с использованием рекурсии - найти ошибку в коде
Что я не так делаю, когда вычисляю факториал введенного числа в текстовое поле? Получается 5!=20,...

Переписать код с использованием рекурсии
Здравствуй мне нужно написать данный код при помощи рекурсии def...

2
17 / 17 / 5
Регистрация: 27.11.2011
Сообщений: 141
20.12.2011, 21:11  [ТС] 2
И никто не может помочь???
0
гроза ленивых студентов
453 / 408 / 51
Регистрация: 27.03.2011
Сообщений: 823
20.12.2011, 21:29 3
отладчик тебе в помощь... как другие будут искать ошибку? только отладчиком
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2011, 21:29

Переписать функции с использованием рекурсии
Подскажите как сделать функцию VYVOD и ADD через рекурсию . #include&lt;iostream.h&gt;...

Переписать программу с использованием процедур или функций
Здравствуйте. Есть задача.Определить множество номеров отрицательных М1 и положительных...

Определить, какой суммарный путь спортсмен пробежит за n дней (переписать с использованием рекурсии)
Uses crt; var n,i:word; vsego,x:real; k:byte; begin clrscr; x:=10; k:=10; vsego:=0;

Помогите Исправить ошибку в рекурсии!
Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождении...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru