1 Востаннє редагувалося Bartash (28.07.2014 08:48:39)

Тема: Розділення числа на розряди.

Я тільки почав програмувати тому прошу пробочення за простеньке питання.
Є ось такий код, що розділяє число по розрядах - одиниці, десятки,сотні і так далі.   
Питання в тому чи можна його переробити так, щоб він розділяв число рухаючись із більшого до менчого тобто, наприклак - тисячі, сотні, десятки, одниці.


int i=1238;
        while(i>0)
        {
        int r=i%10;
        i=i/10;
                System.out.println(r);
            }

Bartash: код слід брати у теги [ code ].

2

Re: Розділення числа на розряди.

З Java не знайомий, але якщо спробувати через цикл в умові якого довжина числа?
*SCRATCH*

3

Re: Розділення числа на розряди.

І пишіть код програми через тег code

ось так

4 Востаннє редагувалося Joker (28.07.2014 08:32:05)

Re: Розділення числа на розряди.

Я майже впевнений, що ви самі зможете рішити цю задачу. У ній немає жодної інформації, яку ви не знаєте.
Знайдіть кількість цифр у числі, а далі використоауйте ділення з остачею та звичайне ділення.
Можете спробувати проробити усі дії з певним числом( 1234) спробуйте подумати крок за кроком як його перетворити у 1-2-3-4.спершу зробіть з 1234 = 1. Далі з 1234--> 234. І ось вже і готовий цикл.

П.с ще знадобиться віднімання

Подякували: Hurmach1

5

Re: Розділення числа на розряди.

Joker навів один варіант; ще є варіант отримати рядок і розташувати його символи в зворотньому порядку, в Java для цього є спеціальні функції.

6

Re: Розділення числа на розряди.

Joker навів один варіант; ще є варіант отримати рядок і розташувати його символи в зворотньому порядку, в Java для цього є спеціальні функції.

Якщо дійшло до варіантів, то можна число записати навпаки (1234-->4321). Це робиться за допомогою цикла.
А далі зробити так як у коді на початку теми.

Подякували: koala1

7

Re: Розділення числа на розряди.

Ой вибачте, я повторив повідомлення koala.
Ну але у зворотньому порядку можна і без фунуцій з рядками, а звичайним циклом.

N  - дане число

cin>> n;
int z;

while( n>0)
{
d= n%10;
z=z*10+d;
n=(n-d) : 10;
}
cout<< z;

Ну якось так, я думаю  ви зрозуміли хоч і на с++.

Подякували: Hurmach1

8

Re: Розділення числа на розряди.

Java я вчив 15 років тому, але нагуглити StringBuilder.Reverse зайняло 20 секунд.

Подякували: Joker1

9

Re: Розділення числа на розряди.

Так з використанням строки, я зная, як то зробити, але завдання стояло саме в тому, щоб це було зроблено без будь-яких уже підготовлених функцій java.
Уже впринципі додумався, як то зробити. Залишилось тільки добратись з роботи додому і написати:)
Доречі всім дякую.

Подякували: koala, Joker2

10 Востаннє редагувалося koala (28.07.2014 16:29:56)

Re: Розділення числа на розряди.

Тоді:
- збирайте в масив і інвертуйте;
- інвертуйте способом пана Joker-а і виводить своїм способом нове число;
- діліть на числа від Math.pow( 10, int( Math.log10( x ) ) ) і т.д., кожне наступне - в 10 разів менше.

Подякували: Hurmach, Joker2

11

Re: Розділення числа на розряди.

пана Joker-а

Ух я аж відчув себе поважною людиною. У нас у гімназії так звертаються до вчителів. Але напевно не варто так робити. Адже я знаю набагато менше ніж ви koala. Та й дотого ж мені всього 15 років.
Але все ж дякую.

12

Re: Розділення числа на розряди.

Пане, тут форум. Я не знаю, чи вам дійсно 15 років, чи ви бабуся - моя сусідка. І не можу знати. Ви говорите про себе в чоловічому роді - тому пан. І годі з цим.

Подякували: 0xDADA11C7, drWoZD, leofun013