0 / 0 / 0
Регистрация: 12.07.2017
Сообщений: 1
1

Приведение типов

12.07.2017, 19:58. Показов 630. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Борюсь с java чуть меньше недели, и тут понадобилось сделать на ней небольшую задачку(типа олимпиадной). После того как все было сделано оказалось, что Integer'a тупо не хватает по условию. Помогите привести все это к лонгу, а заодно в божеский вид.С меня как обычно, но буду крайне благодарен.
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
import java.util.Scanner;
import java.util.Arrays;
public class Main
{
public static void main (String[] args){
Scanner scn = new Scanner(System.in); 
Long w[] = new Long[3]; 
String s="";
Long i;
for(i=Long.valueOf(0);i<3;i++){
    w[i]=scn.nextLong();
}
Long a=w[0];
Long b=w[1];
Long c=w[2];
Long p=scn.nextLong();
Long q[]= new Long[p];
for(i=Long.valueOf(0);i<p;i++){
    q[i]=scn.nextLong();
    if(((Long)(q[i]/b))%2==0){
       if(q[i]%b<=c){
           q[i]=1;
       }
       else{
           q[i]=0;
       }
        }
    
    else{
        if(q[i]%b>b-c){
            q[i]=1;
        }
        else{
            q[i]=0;
        }
         
    }
    
 
}
for (i=0;i<p;i++){
    s=s+q[i];
}
    System.out.println(s);
}
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2017, 19:58
Ответы с готовыми решениями:

Приведение типов сырых типов
class Gen&lt;T&gt; { T ob Gen(T o) { ob=o; } T getob(){ return ob; } public class RawDemo...

Приведение типов
Доброго времени суток! Есть кусочек кода) byte b = 1; b = b + 1; Здесь понятно, что ошибка...

Приведение типов
Добрый день, уважаемые форумчане! Не могу решить данную проблему, возможно вы мне поможете в этом...

Приведение типов
Кто подскажет, почему такая запись допускается: byte b = -1; byte c = b; а такая уже нет? ...

3
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
13.07.2017, 16:05 2
Не вижу ни одного Integer'a. Что не так с этой программой?

Не по теме:

Цитата Сообщение от katanaru Посмотреть сообщение
С меня как обычно
А что обычно от пользователя с первым сообщением на форуме?

0
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
13.07.2017, 18:37 3
Кликните здесь для просмотра всего текста
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
import java.util.Scanner;
 
public class Main {
    private static long getLong(Scanner scn) {
        long value = 0;
        if (scn.hasNextLong()) {
            value = scn.nextLong();
        } else {
            System.out.println("Input data error");  // входные данные неверные
            System.exit(0);
        }
        return value;
    }
 
    public static void main(String[] args) {
        Scanner scn = new Scanner(System.in);
        long[] w = new long[3];
        String s = "";
 
        System.out.println("Введите 3 числа для w[3]:");
        for (int i = 0; i < 3; i++) {
            w[i] = getLong(scn);
        }
        long a = w[0];  // не используется
        long b = w[1];
        long c = w[2];
        System.out.println("Введите размер массива q[](>0):");
        int p = (int) getLong(scn);
        long[] q = new long[p];  // индекс все равно приводим к int
        System.out.println("Введите " + p + " элементов массива q[]:");
        for (int i = 0; i < p; i++) {
            q[i] = getLong(scn);
            if (((q[i] / b)) % 2 == 0) {
                if (q[i] % b <= c) {
                    q[i] = 1;
                } else {
                    q[i] = 0;
                }
            } else {
                if (q[i] % b > b - c) {
                    q[i] = 1;
                } else {
                    q[i] = 0;
                }
            }
        }
        for (int i = 0; i < p; i++) {
            s += q[i]+" ";
        }
        System.out.println(s);
    }
}

Смотрите код. Единственно, индексы все равно пришлось сделать int не работают они long.
Ну с другой стороны у Вас памяти столько не будет, чтобы засобачить массив с индексом long...
0
Эксперт функциональных языков программированияЭксперт Java
4485 / 2720 / 485
Регистрация: 28.04.2012
Сообщений: 8,585
13.07.2017, 18:41 4
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Не вижу ни одного Integer'a. Что не так с этой программой?
Именно это и не так. Наш герой не понимает, где ему нужен int, а где — long. А long там не везде можно (и не везде нужно) использовать. При этом, он, видимо даже подсказки IDE и/или сообщения компилятора не может прочитать. Хотя, судя по тому, что делает его программа, это ему всё равно не поможет.

И как небольшой бонус, он не понимает разницу между примитивными типами и их объектными обёртками.

Добавлено через 3 минуты
Цитата Сообщение от v777779 Посмотреть сообщение
Смотрите код. Единственно, индексы все равно пришлось сделать int не работают они long.
Ну с другой стороны у Вас памяти столько не будет, чтобы засобачить массив с индексом long...
А правильный ответ
Массив q тут и не нужен вовсе. Как и w, кстати7
0
13.07.2017, 18:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2017, 18:41
Помогаю со студенческими работами здесь

Приведение типов
Объясните пожалуйста суть следующих строк кода: char x,y; x=(char)+y; x=(char)-y; x=(char)~y;...

Приведение типов
Всем привет! Изучаю онлайн курсы на одном сайте. В практической части столкнулся со следующим...

приведение типов
Добрый день. Объясните, пожалуйста, поподробнее, кусочек кода. Я знаю, что это приведение типов...а...

Приведение типов
Добрый вечер уважаемые форумчане, подскажите, как вместо true и false сделать 1 и 0. boolean...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru