Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/22: Рейтинг темы: голосов - 22, средняя оценка - 4.77
154 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 83

Разбить число на два - кратное 100 и второе

29.12.2018, 09:48. Показов 4413. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно поделить число на два (уместнее сказать, наверное, разбить на два числа) таким образом, что бы одно число было кратно 100, а другое - оставшаяся часть. В сумме два числа должны давать исходные.
Т.е. число 318500, при делении на 2 получаем: 159250, т.е. 2 числа 159250 и 159250, а должно получиться 159200 и 159300.
Или 32518,72 разбивается на 16200 и 16318,72. Я написала алгоритм, но может как-то еще можно, более проще или производительнее?

C#
1
2
3
4
5
6
7
8
9
10
11
12
  public static double[] PremCalc(double prem)
        {
            char[] prem_ = ((int)prem / 2).ToString().ToCharArray();
            if (prem_[prem_.Length - 1] != '0')
            prem_[prem_.Length - 1] = '0';
            if (prem_[prem_.Length - 2] != '0')
            prem_[prem_.Length - 2] = '0';
            double count = Convert.ToDouble(new string(prem_));
            Console.WriteLine("1-ая премия: " + (prem - count));
            Console.WriteLine("2-ая премия: " + count);
            return new double[] { prem - count, count }; 
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.12.2018, 09:48
Ответы с готовыми решениями:

Если введено чётное, кратное семи, число, то увеличить его в 100 раз
Написать программу, которая запрашивает пользователя ввести натуральное число. Если введено чётное кратное семи число, то программа...

Если введено чётное кратное семи число, то увеличить его в 100 раз
Написать программу, которая запрашивает пользователя ввести натуральное число. Если введено чётное кратное семи число, то программа...

Через for: проверить, есть ли в последовательности хотя бы одно число, кратное а и не кратное b
Если среди чисел i3-17*i*n2+n3 (i = 1,2,…,n) есть хотя бы одно число, кратное а и не кратное b, то вывести True, иначе – False.

7
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
29.12.2018, 10:04
Тупо делите число на 100 (получаете первое), потом получившееся вычитаете из исходного - вот вам второе число.
1
 Аватар для Toros1992
899 / 554 / 275
Регистрация: 26.11.2015
Сообщений: 1,758
Записей в блоге: 2
29.12.2018, 10:11
Лучший ответ Сообщение было отмечено taldarimova как решение

Решение

Вот рабочий метод
C#
1
2
3
4
5
static double[] Division(double prem)
        {
            int left = ((int)prem / 2) - ((int)prem / 2) % 100;
            return new double[] { (double)left, Math.Round(prem - left, 2) };
        }
1
70 / 44 / 28
Регистрация: 14.02.2017
Сообщений: 126
29.12.2018, 10:23
Лучший ответ Сообщение было отмечено taldarimova как решение

Решение

Добрый день!

Да хоть вот так:
C#
1
2
3
4
        public static double[] PremCalc(double prem)
        {
            return new double[2] { prem / 2 - (prem / 2) % 100 , prem - (prem / 2 - (prem / 2) % 100) };            
        }
Здесь сразу возвращаем массив из двух значений типа double: первое значение кратно 100 - входящее делим на 2 и вычитаем из частного его остаток от деления на 100; а второе получаем вычитанием из входного нашего первого значения.
В данном случае можно не делать никаких преобразований типов, никаких ветвлений.
Единственный вопрос: мы делим на 2, т.е. примерно пополам, а почему именно так? Ведь таких чисел (1 часть кратна 100, а другая оставшаяся) много.
1
 Аватар для Jman
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
29.12.2018, 10:32
Лучший ответ Сообщение было отмечено taldarimova как решение

Решение

Вот с выходными параметрами
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  private static void Main(string[] args)
    {
        int a, b;
 
        PremCalc(318500, out a, out b);
        Console.WriteLine($"1-ая премия: {a}");
        Console.WriteLine($"2-ая премия: {b}");
 
        Console.ReadLine();
    }
 
    public static void PremCalc(int prem, out int a, out int b)
    {
        a = prem / 2 - (prem / 2) % 100;
        b = prem - (prem / 2 - (prem / 2) % 100);
    }
1
154 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 83
29.12.2018, 11:11  [ТС]
Можно как-то сделать, что бы большое число было кратно 100?
Сейчас, например, 558,53 разбивает на 200 и 358,53.
Как сделать, что бы было 300 и 258,53.
0
 Аватар для Toros1992
899 / 554 / 275
Регистрация: 26.11.2015
Сообщений: 1,758
Записей в блоге: 2
29.12.2018, 11:13
Лучший ответ Сообщение было отмечено taldarimova как решение

Решение

C#
1
2
3
4
5
static double[] Division(double prem)
        {
            int left = ((int)prem / 2) - ((int)prem / 2) % 100 +100;
            return new double[] { (double)left, Math.Round(prem - left, 2) };
        }
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
29.12.2018, 11:53
Цитата Сообщение от taldarimova Посмотреть сообщение
Можно как-то сделать, что бы большое число было кратно 100?
Сейчас, например, 558,53 разбивает на 200 и 358,53.
Как сделать, что бы было 300 и 258,53.
Менее компактно, но более подробно для ясности
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        static double[] Division(double prem)
        {
            double num1 = prem /2.0; // Половина числа
            int num2 = ((int) num1) / 100; // Количество сотен в половине числа
            double num3 = num2*100.0; // Первое число
            double num4 = prem - num3; // второе число
            if (num3 < num4 ) // Проверка какая часть меньше
            {   // если первая меньше
                 num3 += 100.0;
                 num4 = prem - num3;
            }
            return new double[] { num3, num4 };
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2018, 11:53
Помогаю со студенческими работами здесь

Дано число. Если оно четное, кратное 9 и не кратное 8, то увеличить его в 23 раза
Помогите пожалуйста с задачкой Дано число. Если оно четное, кратное 9 и не кратное 8, то увеличить его в 23 раза. Заранее...

Выяснить, есть ли среди чисел i^3 - 17*i*N^2+N^3 (i=1,...,N) хотя бы одно число, кратное двум и не кратное трем
Дано натуральное число N. Выяснить, есть ли среди чисел i^3- 17*i*N^2+N^3 (i=1,2,...,N) хотя бы одно число, кратное двум и не кратное трем....

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

Поделить два числа, но если второе число ноль, вернуть -1
#include &lt;iostream&gt; using namespace std; int func(int x); int main() { int y,x; cin &gt;&gt; y; cin &gt;&gt; x; ...

Массивы. Перменной N присвоить значение истина если в одномерном целочисленном массиве имеется хотя бы 1 число кратное а и не кратное б
Даны 2 натуральных числа . перменной N присвоить значение истина если в одномерном целочисленном массиве имеется хотя бы 1 число кратное а...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru