С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 39

Программа, которая делит числа и выводит результат в консоль

10.10.2018, 10:14. Показов 4363. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть у кого-нибудь пример программы, которая делит числа и выводит результат в консоль?
Например:
Название: integer_division.jpg.png
Просмотров: 72

Размер: 4.0 Кб
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2018, 10:14
Ответы с готовыми решениями:

Написать программу, которая получает два трехзначных числа, меняет у них местами средние цифры и выводит результат в консоль
#include <iostream> using namespace std; void main() { int num = 0; int num2 = 0; cout << "Enter xxx number"; cin >>...

Программа, которая получает на вход три числа и выводит на консоль в максимальное, минимальное и оставшееся
Добрый вечер! Суть программы: Напишите программу, которая получает на вход три целых числа, по одному числу в строке, и выводит на...

Программа по структурам не выводит результат в консоль
Помогите разобраться в программе, она написана правильно,но из-за одной строчки не выводит значение на экран. Писал в программе Microsoft...

15
2 / 1 / 1
Регистрация: 18.12.2016
Сообщений: 26
10.10.2018, 12:38
superknockout10, Держи
Java
1
2
3
4
5
6
7
8
9
10
11
import java.util.Scanner;
public class Main {
    public static void main(String[]args){
        Scanner in=new Scanner(System.in);
        System.out.println("Введите число которое хотите разделить:");
        double a=in.nextDouble();
        System.out.println("Введите делитель:");
        double b=in.nextDouble();
        System.out.println("Результат: "+a/b);
    }
}
Миниатюры
Программа, которая делит числа и выводит результат в консоль  
0
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 39
10.10.2018, 12:42  [ТС]
Нет.) Я же пример дал, как в консоле должно выводится.
0
2 / 1 / 1
Регистрация: 18.12.2016
Сообщений: 26
10.10.2018, 12:48
superknockout10, Оооу это тебе такое задание дали? Сочувствую, вряд ли тебе кто-то поможет)
0
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 39
10.10.2018, 12:49  [ТС]
Да вот же)
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
10.10.2018, 12:57
Лучший ответ Сообщение было отмечено superknockout10 как решение

Решение

https://so/questions/548147/%D... D0%B0-java
2
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 39
10.10.2018, 13:04  [ТС]
Что это за ссылка такая?) Поправь, пожалуйста.
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
10.10.2018, 13:06
superknockout10, русский стековерфлоу. Подумай на что заменить so надо.
1
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 39
10.10.2018, 13:09  [ТС]
Вау, кайф) Благодарю!
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
10.10.2018, 13:15
Цитата Сообщение от Илья Лазарь Посмотреть сообщение
вряд ли тебе кто-то поможет
это да, учитывая не умение пользоваться интернетом тут ответ
Даже, как-то не по себе, что люди так ограничены((
1
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 39
10.10.2018, 13:18  [ТС]
Простите, виноват.
0
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 39
12.10.2018, 09:29  [ТС]
Кто-нибудь понимает почему съезжает вывод при делении 1034/15? Подскажите, пожалуйста.

Java
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
129
130
131
132
public class Division {
 
        private StringBuilder result = new StringBuilder();
        private StringBuilder quotient = new StringBuilder();
        private StringBuilder reminder = new StringBuilder();
                
        public String createLongDivision(int dividend, int divisor) {
            
            dividend = Math.abs(dividend);
            divisor = Math.abs(divisor);
 
            if (divisor == 0) {
                
                throw new IllegalArgumentException("Divisor can't be 0");
                
            }
 
            if (dividend < divisor) {
                
                throw new IllegalArgumentException("Dividend can't be less than divisor");
                
            }
                        
            String[] digits = String.valueOf(dividend).split("");
            Integer reminderNumber;
            Integer multiplyResult;
            Integer divisorDigit = calculateDigit(divisor);
            Integer mod;
 
            for (int i = 0; i < digits.length; i++) {
                
                reminder.append(digits[i]);
                reminderNumber = Integer.parseInt(reminder.toString());
 
                if (reminderNumber >= divisor) {
                    
                    mod = reminderNumber % divisor;
                    multiplyResult = reminderNumber / divisor * divisor;
 
                    String lastReminder = String.format("%" + (i + 2) + "s", "_" + reminderNumber.toString());
                    result.append(lastReminder).append("\n");
 
                    String multiply = String.format("%" + (i + 2) + "d", multiplyResult);
                    result.append(multiply).append("\n");
 
                    Integer tab = lastReminder.length() - calculateDigit(multiplyResult);
                    result.append(createDivisor(reminderNumber, tab)).append("\n");
 
                    quotient.append(reminderNumber / divisor);
 
                    reminder.replace(0, reminder.length(), mod.toString());
                    reminderNumber = Integer.parseInt(reminder.toString());
                    
                } 
                                
                if (i == digits.length - 1) {
                    
                    result.append(String.format("%" + (i + 2) + "s", reminderNumber.toString())).append("\n");
                    
                }
            }
            
            modifyResultView(dividend, divisor);
            return result.toString();
            
        }
 
        private String createDivisor (Integer reminderNumber, Integer tab) {
            
            return assemblyString(tab, ' ') + assemblyString(calculateDigit(reminderNumber), '-');
            
        }
        
        private int calculateDigit(int i) {
            
            return (int) Math.log10(i) + 1;
            
        }
        
        private String assemblyString(int numberOfSymbols, char symbol) {
            
            StringBuilder string = new StringBuilder();
            
            for (int i = 0; i < numberOfSymbols; i++) {
                
                string.append(symbol);
                
            }
            
            return string.toString();
            
        }
        
        private void modifyResultView(Integer dividend, Integer divisor) {
            
            int[] index = new int[3];
            
            for (int i = 0, j = 0; i < result.length(); i++) {
                
                if (result.charAt(i) == '\n') {
                    
                    index[j] = i;
                    
                    j++;
                    
                }
 
                if (j == 3) {
                    
                    break;
                    
                }
                
            }
 
            int tab = calculateDigit(dividend) + 1 - index[0];
            result.insert(index[2], assemblyString(tab, ' ') + "│" + quotient.toString());
            result.insert(index[1], assemblyString(tab, ' ') + "│" + assemblyString(quotient.length(), '-'));
            result.insert(index[0], "│" + divisor);
            result.replace(1, index[0], dividend.toString());
            
        }
        
        public static void main(String[] args) {
            
            Division division = new Division();
            
            System.out.println(division.createLongDivision(1034, 15));
                
            }
                
    }
Название: не съезжает.jpg
Просмотров: 53

Размер: 9.2 КбНазвание: съезжает.jpg
Просмотров: 53

Размер: 7.3 Кб
0
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 39
13.10.2018, 22:23  [ТС]
Допилил. Код рабочий, но подскажите, пожалуйста, почему перемешивается вывод, когда подряд несколько задач. И как исправить?

Java
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
129
130
131
132
133
public class Division {
 
    private StringBuilder result = new StringBuilder();
    private StringBuilder quotient = new StringBuilder();
    private StringBuilder reminder = new StringBuilder();
 
    public String createLongDivision(int dividend, int divisor) {
 
        dividend = Math.abs(dividend);
        divisor = Math.abs(divisor);
 
        if (divisor == 0) {
 
            throw new IllegalArgumentException("Divisor can't be 0");
 
        }
 
        if (dividend < divisor) {
 
            throw new IllegalArgumentException("Dividend can't be less than divisor");
 
        }
 
        String[] digits = String.valueOf(dividend).split("");
        Integer reminderNumber;
        Integer multiplyResult;
        Integer mod;
 
        for (int i = 0; i < digits.length; i++) {
 
            reminder.append(digits[i]);
            reminderNumber = Integer.parseInt(reminder.toString());
 
            if (reminderNumber >= divisor) {
 
                mod = reminderNumber % divisor;
                multiplyResult = reminderNumber / divisor * divisor;
 
                String lastReminder = String.format("%" + (i + 2) + "s", "_" + reminderNumber.toString());
                result.append(lastReminder).append("\n");
 
                String multiply = String.format("%" + (i + 2) + "d", multiplyResult);
                result.append(multiply).append("\n");
 
                Integer tab = lastReminder.length() - calculateDigit(multiplyResult);
                result.append(createDivisor(multiplyResult, tab)).append("\n");
 
                quotient.append(reminderNumber / divisor);
 
                reminder.replace(0, reminder.length(), mod.toString());
                reminderNumber = Integer.parseInt(reminder.toString());
 
            } 
 
 
            if (i == digits.length - 1) {
 
                result.append(String.format("%" + (i + 2) + "s", reminderNumber.toString())).append("\n");
 
            }
        }
 
        modifyResultView(dividend, divisor);
        return result.toString();
 
    }
 
    private String createDivisor (Integer multiplyResult, Integer tab) {
 
        return assemblyString(tab, ' ') + assemblyString(calculateDigit(multiplyResult), '-');
 
    }
 
    private int calculateDigit(int i) {
 
        return (int) Math.log10(i) + 1;
 
    }
 
    private String assemblyString(int numberOfSymbols, char symbol) {
 
        StringBuilder string = new StringBuilder();
 
        for (int i = 0; i < numberOfSymbols; i++) {
 
            string.append(symbol);
 
        }
 
        return string.toString();
 
    }
 
    private void modifyResultView(Integer dividend, Integer divisor) {
 
        int[] index = new int[3];
 
        for (int i = 0, j = 0; i < result.length(); i++) {
 
            if (result.charAt(i) == '\n') {
 
                index[j] = i;
 
                j++;
 
            }
 
            if (j == 3) {
 
                break;
 
            }
 
        }
 
        int tab = calculateDigit(dividend) + 1 - index[0];
        result.insert(index[2], assemblyString(tab, ' ') + "│" + quotient.toString());
        result.insert(index[1], assemblyString(tab, ' ') + "│" + assemblyString(quotient.length(), '-'));
        result.insert(index[0], "│" + divisor);
        result.replace(1, index[0], dividend.toString());
 
    }
 
    public static void main(String[] args) {
 
        Division division = new Division();
 
        System.out.println(division.createLongDivision(1000, 15)); 
        System.out.println(division.createLongDivision(1034, 15));
 
        }
 
}
Добавлено через 26 минут
Исправил. Надо было StringBuilderы инициализировать в методе.
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
13.10.2018, 22:24
Цитата Сообщение от superknockout10 Посмотреть сообщение
Java
1
2
3
4
5
private StringBuilder result = new StringBuilder();
* * private StringBuilder quotient = new StringBuilder();
* * private StringBuilder reminder = new StringBuilder();
public String createLongDivision(int dividend, int divisor) {
dividend = Math.abs(dividend);
Заменить на:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private StringBuilder result;
    private StringBuilder quotient;
    private StringBuilder reminder;
 
    public void init() {
        this.result = new StringBuilder();
        this.quotient = new StringBuilder();
        this.reminder = new StringBuilder();
    }
 
    public String createLongDivision(int dividend, int divisor) {
        init();
 
        dividend = Math.abs(dividend);
Все дело в том, что перед новым вызовом необходимо "очищать" StringBuilder.
1
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 39
13.10.2018, 22:29  [ТС]
А я их вот так в методе инициализировал.
Java
1
2
3
result = new StringBuilder();
quotient = new StringBuilder();
reminder = new StringBuilder();
Вроде бы работает. Так не лучше?
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
13.10.2018, 22:35
Цитата Сообщение от superknockout10 Посмотреть сообщение
Так не лучше?
По большому счету без разницы. Но смотрите: при создании класса Вы инициализируете эти переменные, а потом при вызове метода (даже в первый раз) инициализируете повторно. То есть в первый раз 3 объекта создается зря.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.10.2018, 22:35
Помогаю со студенческими работами здесь

Написать программу, которая получает трехзначное число, “переворачивает” его и выводит результат в консоль
Двух кратное переварачивает а трёх нет как только не пробовал подскажите вот мой код #include &lt;iostream&gt; using namespace std; ...

Программа которая выводит крест на экран (консоль)
Нужно написать программу с использованией for, язык C++

Написать программу, которая предлагает пользователю ввести целое число, определяет его четность и выводит результат в консоль
1.Написать программу, которая предлагает пользователю ввести целое число, определяет его четность и выводит результат в консоль.

Написать программу, которая делит числа в 5 степени на число в 14 степени и выводит ответ в 5 степени. Найти ошибку
Ребят, такая проблема, задание: Написать программу, которая делит числа в 5 степени на число в 14 степени и выводит ответ в 5 степени. ...

Программа которая делит два числа а после округляет до десятых после запятой
Ребята помогите написать программу которая будет делить два введенных числа и после деления округлять ответ до десятых после запитой! числа...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru