powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / перевод числа в словесное выражение java
6 сообщений из 6, страница 1 из 1
перевод числа в словесное выражение java
    #38475375
Shirokij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят,нужна ваша помощь в исправлении программы!
в общем я написал программу для перевода чисел в слова,но после 100000 она начинает неправильно выдавать ответы.
вроде смотрю,все нормально написано,но чтото не так.
помогите пожалуйста исправить)))


package stringtonum;

import java.util.Scanner;

public class StringToNum {
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
System.out.println("enter number ");
int number=sc.nextInt();
int pole[]=new int[10];
int i=0;
while(number!=0)
{
pole[i]=number%10;
number=number/10;
i++;
}
int dlinna=i;
int pole1[]=new int[dlinna];
int j=0;
for(int k=dlinna-1;k>=0;k--)
{
pole1[j]=pole[k];
j++;
}
StringToNum stn=new StringToNum();
String output="";
switch(dlinna)
{
case 1:
{
output+=stn.strNum1(pole1[dlinna-1]);
System.out.println("output="+output);
break;
}
case 2:
{
int no1=pole1[dlinna-2]*10+pole1[dlinna-1];
if(no1>=11 & no1<=19)
{
output=stn.strNum2(no1);
output=output+" "+stn.strNum1(pole1[dlinna-1]);
System.out.println("output="+output);
}
else
{
pole1[dlinna-2]=pole1[dlinna-2]*10;
output+=stn.strNum2(pole1[dlinna-2]);
output=output+" "+stn.strNum1(pole1[dlinna-1]);
System.out.println("output="+output);
}
break;
}
case 3:
{
output=stn.strNum1(pole1[dlinna-3])+" hundred ";
int no1=pole1[dlinna-2]*10+pole1[dlinna-1];
if(no1>=11 & no1<=19)
{
output=stn.strNum2(no1);
}
else
{
pole1[dlinna-2]=pole1[dlinna-2]*10;
output+=stn.strNum2(pole1[dlinna-2]);
output=output+" "+stn.strNum1(pole1[dlinna-1]);
}
System.out.println("output="+output);
break;
}
case 4:
{
output=stn.strNum1(pole1[dlinna-4])+" thousand ";
if(!stn.strNum1(pole1[dlinna - 3]).equals(""))
{
output+=stn.strNum1(pole1[dlinna-3])+" hundred ";
}
int no1=pole1[dlinna-2]*10+pole1[dlinna-1];
if(no1>=11 & no1<=19)
{
output=stn.strNum2(no1);
}
else
{
pole1[dlinna-2]=pole1[dlinna-2]*10;
output+=stn.strNum2(pole1[dlinna-2]);
output=output+" "+stn.strNum1(pole1[dlinna-1]);
}
System.out.println("output="+output);
break;
}

case 5:
{
int no1=pole1[dlinna-5]*10+pole1[dlinna-4];
if(no1>=11 & no1<=19)
{
output=stn.strNum2(no1)+" thousand ";
}
else
{
pole1[dlinna-5]=pole1[dlinna-5]*10;
output+=stn.strNum2(pole1[dlinna-5]);
output=output+" "+stn.strNum1(pole1[dlinna-4])+" thousand ";
}
if( !stn.strNum1(pole1[dlinna - 3]).equals(""))
{
output+=stn.strNum1(pole1[dlinna-3])+" hundred ";
}
no1 = pole1[dlinna - 2] * 10 + pole1[dlinna - 1];
if(no1>=11 & no1<=19)
{
output=stn.strNum2(no1);
}
else
{
pole1[dlinna-2]=pole1[dlinna-2]*10;
output+=stn.strNum2(pole1[dlinna-2]);
output=output+" "+stn.strNum1(pole1[dlinna-1]);
}
System.out.println("output="+output);
break;
}
case 6:
{
output+=stn.strNum1(pole1[dlinna-6])+" million ";
int no1=pole1[dlinna-5]*10+pole1[dlinna-4];
if(no1>=11 & no1<=19)
{
output+=stn.strNum2(no1)+" thousand ";
}
else
{
pole1[dlinna-5]=pole1[dlinna-5]*10;
output+=stn.strNum2(pole1[dlinna-5]);
output=output+" "+stn.strNum1(pole1[dlinna-4])+" thousand ";
}
if( !stn.strNum1(pole1[dlinna - 3]).equals(""))
{
output+=stn.strNum1(pole1[dlinna-3])+" hundred ";
}
no1 = pole1[dlinna - 2] * 10 + pole1[dlinna - 1];
if(no1>=11 & no1<=19)
{
output=stn.strNum2(no1);
}
else
{
pole1[dlinna-2]=pole1[dlinna-2]*10;
output+=stn.strNum2(pole1[dlinna-2]);
output=output+" "+stn.strNum1(pole1[dlinna-1]);
}
System.out.println("output="+output);
break;
}
case 7:
{
int no1=pole1[dlinna-7]*10+pole1[dlinna-6];
if(no1>=11 & no1<=19)
{
output=stn.strNum2(no1)+" Milloin ";
}
else
{
pole1[dlinna-7]=pole1[dlinna-7]*10;
output+=stn.strNum2(pole1[dlinna-7]);
output=output+" "+stn.strNum1(pole1[dlinna-6])+" Million ";
}
no1=pole1[dlinna-5]*10+pole1[dlinna-4];
if(no1>=11 & no1<=19)
{
output=stn.strNum2(no1)+" Thousand ";
}
else
{
pole1[dlinna-5]=pole1[dlinna-5]*10;
output+=stn.strNum2(pole1[dlinna-5]);
output=output+" "+stn.strNum1(pole1[dlinna-4])+" Thousand ";
}
if( !stn.strNum1(pole1[dlinna - 3]).equals(""))
{
output+=stn.strNum1(pole1[dlinna-3])+" Hundred ";
}
no1 = pole1[dlinna- 2] * 10 + pole1[dlinna - 1];
if(no1>=11 & no1<=19)
{
output=stn.strNum2(no1);
}
else
{
pole1[dlinna-2]=pole1[dlinna-2]*10;
output+=stn.strNum2(pole1[dlinna-2]);
output=output+" "+stn.strNum1(pole1[dlinna-1]);
}
System.out.println("output="+output);
break;
}
}

}
String strNum1(int a)
{
String nacalo="";
switch(a)
{
case 1:
{
nacalo="one";
break;
}
case 2:
{
nacalo="two";
break;
}
case 3:
{
nacalo="three";
break;
}
case 4:
{
nacalo="four";
break;
}
case 5:
{
nacalo="five";
break;
}
case 6:
{
nacalo="six";
break;
}
case 7:
{
nacalo="seven";
break;
}
case 8:
{
nacalo="eight";
break;
}
case 9:
{
nacalo="nine";
break;
}
}
return nacalo;
}
String strNum2(int a)
{
String nacalo="";
switch(a)
{
case 10:
{
nacalo="ten";
break;
}
case 20:
{
nacalo="twenty";
break;
}
case 30:
{
nacalo="thirty";
break;
}
case 40:
{
nacalo="fourty";
break;
}
case 50:
{
nacalo="fifty";
break;
}
case 60:
{
nacalo="sixty";
break;
}
case 70:
{
nacalo="seventy";
break;
}
case 80:
{
nacalo="eighty";
break;
}
case 90:
{
nacalo="ninty";
break;
}
case 11:
{
nacalo="eleven";
break;
}
case 12:
{
nacalo="twelve";
break;
}
case 13:
{
nacalo="thirteen";
break;
}
case 14:
{
nacalo="fourteen";
break;
}
case 15:
{
nacalo="fifteen";
break;
}
case 16:
{
nacalo="sixteen";
break;
}
case 17:
{
nacalo="seventeen";
break;
}
case 18:
{
nacalo="eighteen";
break;
}
case 19:
{
nacalo="nineteen";
break;
}
}
return nacalo;
}
}
...
Рейтинг: 0 / 0
перевод числа в словесное выражение java
    #38475388
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
перевод числа в словесное выражение java
    #38475392
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shirokij,

Готовое решение: http://www.rgagnon.com/javadetails/java-0426.html
...
Рейтинг: 0 / 0
перевод числа в словесное выражение java
    #38475406
Shirokij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за готовые решения,я их просмотрел,но у меня задание написать программу на 300 и более строк,так что приходится изобретать чтото свое)
был бы искренне благодарен,если бы кто нибудь мне помог исправить мой код)
...
Рейтинг: 0 / 0
перевод числа в словесное выражение java
    #38475420
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shirokij,

жесть... это где такие задания что нужно именно более 300 строк? Вообще, перефразируя Экзепюри - хорошая программа, это такая программа, в которой нельзя удалить ни единой строки, чтобы она не потеряла работоспособность. Например я испытываю подлинное насладение когда вижу крохотную программку, которая делает свою задачу
...
Рейтинг: 0 / 0
перевод числа в словесное выражение java
    #38475435
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShirokijСпасибо большое за готовые решения,я их просмотрел,но у меня задание написать программу на 300 и более строк,так что приходится изобретать чтото свое)
был бы искренне благодарен,если бы кто нибудь мне помог исправить мой код)
Так в чём проблема? Пустить пыль преподу в глаза? Но поставь побольше ENTER-ов. Я-то тоже
считал что сорц должен быть компактным.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / перевод числа в словесное выражение java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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