сделать номер по определенной схеме - PullRequest
0 голосов
/ 22 ноября 2018

Я хочу код, который делает число по определенному шаблону.Например:

  • Если число находится в диапазоне 0-39, тогда оно равно 0.
  • Если число находится в диапазоне 40-79, оно равно 40.
  • Если число находится в диапазоне 80-119, оно становится равным 80 и так далее ...

Вот код, который я пытался:

for(int t=1 ; t<300 ; t=t*10){
    if(t+40 > somenumber && t-40 < sumnumber){
        System.out.println("match  "+t);
        break;
    }
}

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Похоже, что вы хотите знать, сколько int умножает на 40 в вашем числе: для 39 это 0, для 40 ... 79 это 1 и так далее?это просто:

System.out.println(40*(somenumber/40));

Так как (somenumber/40) является делением типа int, оно даст вам количество раз, а поскольку вам нужна нижняя граница, просто умножьте ее еще раз на 40.

0 голосов
/ 22 ноября 2018

Вам необходимо использовать int division: 86/40 = 2, поскольку он сохраняет только int part (86/40.0 would give 2.15

Если бы step было double, вам понадобится res = step * Math.floor(t / step)

int step = 40;
for (int t = 1; t < 300; t += 10) {
   int res = step * (t / step);
   System.out.printf("%3d => %3d%n", t, res);
}
/*
  1 =>   0
 11 =>   0
 21 =>   0
 31 =>   0
 41 =>  40
 51 =>  40
 61 =>  40
 71 =>  40
 81 =>  80
 91 =>  80
101 =>  80
111 =>  80
121 => 120
131 => 120
141 => 120
151 => 120
161 => 160
171 => 160
181 => 160
191 => 160
201 => 200
211 => 200
221 => 200
231 => 200
241 => 240
251 => 240
261 => 240
271 => 240
281 => 280
291 => 280
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...