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

Работа с функциями

07.10.2016, 20:53. Показов 682. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста есть программа на С++ , переделать на JAVA.

Разработать и испытать функцию, которая принимает два целых числа n и k и возвращает число, содержащее k последних цифр числа n.

Вот код на С++

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
// k_digit.cpp: определяет точку входа для консольного приложения.
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int k_digit(int n, int k); // прототип
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "rus");
    cout << "Введите число: ";
    unsigned long number, level;
    cin >> number;
    cout << "Сколько разрядов показать? ";
    cin >> level;
    cout << k_digit(number, level) << endl;
    system("pause");
    return 0;
}
 
int k_digit(int n, int k)
{
    int save_n = n, // делаем копию числа
        counter_digits = 0; // количество разрядов вводимого числа
 
    while (save_n) // пока результат деления не равен нулю
    {
        save_n /= 10;
        counter_digits++; // подсчёт количества разрядов вводимого числа
    }
 
    for (int counter = 0; counter < (counter_digits - k); counter++ )
        n /= 10; // отсекаем лишние разряды введённого числа
 
    return n;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2016, 20:53
Ответы с готовыми решениями:

работа с функциями
у меня возникла проблема с такой задачкой : Даны натуральные числа k, n, m, действительные числа Х1,...,Xk, Y1, ...,Yn , Z1,...,Zm....

Работа с функциями
Помогите пожалйста))) Очень нужно Задание: Вычислить Z = (X1 + Y1) / (Х2 - Y2), где Х1 и Х2 - корни уравнения 2x2 +x – 4=0; Y1 и Y2 –...

Работа с функциями
Заданное натуральное число n. Записать его представления в системе счисления с основанием k.

7
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
07.10.2016, 21:56
Анастасия 777, а зачем переделывать? В Java полно инструментов для решения этой и других задач. Проще сразу написать ну вот хотя бы такой вариант:
Java
1
2
3
4
5
6
7
8
    public static void main(String[] args) throws IOException{
        System.out.print("Введите число: ");
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String number = reader.readLine();
        System.out.print("Сколько знаков показать: ");
        int runk = Integer.parseInt(reader.readLine());
        System.out.println(number.substring(number.length() - runk));
    }
Ожидаемый вывод после завершения программы:
Java
1
2
3
Введите число: 1234567891011121314
Сколько знаков показать: 7
1121314
0
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 9
08.10.2016, 09:30  [ТС]
HOBATOP,вот я немного подправила, а как сделать чтобы была именно переменная n???
И как сделать защиту от ввода некорректных данных при случае когда число k(кол-во знаков) превышает кол во знаков самого числа n????Чтобы вывелось соответствующее сообщение об ошибке
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class funk {
    public static void main(String[] args) throws IOException{
        int k;
        while (true){
        System.out.print("Введите число: ");
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String number = reader.readLine();
        System.out.print("Сколько знаков показать: ");     
        k = Integer.parseInt(reader.readLine());
        while (k==0) {System.out.println("Число не должно быть равное нулю,введите число заново:"); k = Integer.parseInt(reader.readLine());}
        System.out.println(number.substring(number.length() - k));
}
}}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
08.10.2016, 19:46
Из серии "Мы простых путей не ищем!"
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
import java.util.*;
 
class WrongParametersException extends Exception {
    @Override
    public String getMessage() {
        return "Both numbers must be positive and first must have more digits than value of second";
    }
}
 
public class LastDigitsNumber {
    static long cutNumber(long number, int digits) throws WrongParametersException {
        if ( number <= 0 || digits <= 0 )
            throw new WrongParametersException();
        int digitsInNumber = (int)Math.round(Math.log10(number)) + 1;
        if ( digitsInNumber <= digits)
            throw new WrongParametersException();
        
        return number % (int)Math.pow(10., digits);
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        while ( true ) {
            try {
                System.out.print("Number: ");
                long number = scanner.nextLong();
                System.out.print("Digits: ");
                int digits = scanner.nextInt();
                System.out.println("Result: " + cutNumber(number, digits));
            }
            catch ( InputMismatchException ime ) {
                System.out.println("Need some numbers!");
                scanner.nextLine();
                continue;
            }
            catch ( NoSuchElementException nsee ) {
                scanner.close();
                System.out.println();
                System.exit(0);
            }
            catch ( WrongParametersException wpe ) {
                System.out.println(wpe.getMessage());
            }
        }
    }
}
0
1 / 1 / 1
Регистрация: 18.09.2016
Сообщений: 26
08.10.2016, 22:30
easybudda, Что в данном коде делает @Override?
Помимо @Override, как вообще правильно применять грамотно другие аннотации?
p.s.: В книге про аннотации прочитал, не совсем понял.
Они нужны для упрощения поиска ошибок в коде? Для проверки? Можешь вкратце и простым языком объяснить?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
08.10.2016, 22:43
Цитата Сообщение от No777 Посмотреть сообщение
Что в данном коде делает @Override?
Указывает, что следующий метод переопределяет существующий где-то выше по дереву наследования. В данном случае переопределение метода getMessage(), который базовый (для этого класса) класс Exception наследует у своего родительского класса Throwable.
Цитата Сообщение от No777 Посмотреть сообщение
Они нужны для упрощения поиска ошибок в коде? Для проверки?
В том числе. Если указать @Override для метода, который ничего в родительских классах не перекрывает, получите соответствующее сообщение от компилятора.

Не по теме:

Цитата Сообщение от No777 Посмотреть сообщение
Можешь вкратце и простым языком объяснить?
Вкратце может не получиться. Если не можете с аннотациями разобраться, создайте отдельную тему (вопрос на самом деле довольно ёмкий, в чужой теме офтопом будет)

1
1 / 1 / 1
Регистрация: 18.09.2016
Сообщений: 26
08.10.2016, 22:53
easybudda, Я как понял, если не указать, к примеру, @Override, то метод не переопределится у своего родительского класса? Но всё равно ошибки же не будет, например, в этом коде метод всё равно же вернёт строковое предложение
Java
1
2
3
4
 @Override
    public String getMessage() {
        return "Both numbers must be positive and first must have more digits than value of second";
    }
Какой смысл тогда его переопределять?

@Override служит для переопределения метода у родительского класса, правильно?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
08.10.2016, 23:02
Цитата Сообщение от No777 Посмотреть сообщение
если не указать, к примеру, @Override, то метод не переопределится у своего родительского класса?
Нет, не правильно. Метод переопределится. Тут важен другой случай: если на самом деле предполагалось метод переопределить, но в названии ошиблись, получите потомка с каким-то другим методом. Соответственно, при вызове нужного метода у потомка будет вызван метод предка, а не тот, который вроде бы "переопределили". Если перед переопределением метода указать @Override и неправильно написать его название - получите сообщение об ошибке при компиляции, не прийдётся голову ломать, почему код как-то не так работает.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2016, 23:02
Помогаю со студенческими работами здесь

Работа с функциями
Народ, объясните мне пожалуйста почему в функциях countX передаются вот такие данные vir1 = countX ( x1*x1, x2, M_PI_2); ...

работа с функциями , С++
Написать функцию для вычисления максимального значения элементов главной диагонали матрицы целых чисел a. 1. Массивы и их размеры...

Работа с функциями
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include&lt;CONIO.H&gt; #include&lt;STDIO.H&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; ...

Работа с функциями
Доброго времени суток! Ребята, вопрос вот какого плана... есть глобальная переменная типа НотесДокумент... есть функция, которая должна...

Работа с функциями
Доброго времени суток. Нужна помощь с функциями. Для первой задачи есть решение, только функции не используются: 1. Дана целочисленная...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru