im a Beginner in python and i don’t know how to Write a program that reads a number from the input and prints the next multiple of 10 that is greater than this number. For example, if the number 11 is read from the input, the number 20 should be printed. If the number 40 is read, the number 50 should be printed.
Please show the code you have written so far so that we have something to work from.
Cut-n-paste your code between so-called code-fences like this:
```
print('Your code here')
```
I assume that when you say “greater” it means strictly greater. For example, that for the input 10
the result should be 20
. Maybe clarify if for the input 10
the output should be 10
.
You know that the floor function \lfloor\cdot\rfloor satisfies (perhaps that’s you definition)
\lfloor y\rfloor \leq y<\lfloor y\rfloor
So, putting y=x and multiplying by 10
10\lfloor\frac{x}{10}\rfloor\leq x<10\lfloor x/10\rfloor +10
So, the smallest multiple of 10 larger than x is 10\lfloor x/10\rfloor +10.
Check in the documentation if the function math.floor
gives the same result as \lfloor\cdot \rfloor and then you could do 10 * math.floor(x/10) + 10
Check which type of input you will get. Can x
be any of the values of float
? Maybe cover the cases x
equal to the values float('inf')
, float('-inf')
, float('nan')
.
Some things to consider:
- user input is string, so conversion to int is required
- there is // (floor division) operator
For example:
>>> int('11') // 10
1
>>> (int('11') // 10 + 1) * 10
20
For an int calculation I would not be using math.floor
The modulus operator % and the integer divide // are, I think, the key to this.
As you say need to confirm if input of 10 is expected to be 20 or 10.
thank you for help