Как найти следующее кратное 10 любого целого числа? - PullRequest
39 голосов
/ 08 марта 2010

Динамическое целое число будет любым числом от 0 до 150.

т.е. - число возвращает 41, нужно вернуть 50. Если число равно 10, нужно вернуть 10. Число равно 1, нужно вернуть 10.

Думал, что мог бы использовать функцию потолка, если бы я изменил целое число как десятичное число ...? затем использовать функцию потолка и вернуть обратно в десятичную?
Единственное, что также нужно знать, это число, состоящее из 1, 2 или 3 цифр (т.е. - 7 против 94 против 136)

Есть ли лучший способ добиться этого?

Спасибо,

Ответы [ 12 ]

0 голосов
/ 08 марта 2010
round_up(int i) 
{
      while(i%10) {
            i++;
      }
      return(i);
}
0 голосов
/ 08 марта 2010

В псевдокоде:

number = number / 10
number = ceil(number)
number = number * 10

В Python:

import math
def my_func(x):
    return math.ceil(x / 10) * 10

Это должно сделать это. Имейте в виду, что приведенный выше код будет приводить целое число к числу с плавающей запятой / двойному для арифметики, и его можно заменить на целое число для окончательного возврата. Вот пример с явным приведением типов

В Python (с приведением типов):

import math
def my_func(x):
    return int(math.ceil(float(x) / 10) * 10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...