2017-04-27 59 views
0

我有一个要求:如何获得轮数,如果使用给定的规则

我想有一个函数,这样,如果该号码为:323.01我想返回500

如果号码是678.60,我想获得1000。如果号码是20.0,我想要50

如果号码是8,我想要10

是这样的:如果该号码的第一个数字,如果低于5,我希望得到5,如果超过5,我想10

如何在Objective-C中实现这个功能?


我只是想想这个,我只知道用%获得一定数目的最后一个数字,我不知道如何获得给定数的第一个数字。

+0

这是一个家庭作业?堆栈溢出不是让您为您解决家庭作业分配的地方。 – SU3

+0

@ SU3不,我只是想不出解决方案。 –

回答

1

首先,我会得到的位数(例如,对于456是3):

var originalNumber = 456 
var counter = 0 
var number = originalNumber 
while(number != 0){ 
    counter = counter + 1 
    number = number/10 
} 

从那里,你可以用计数器的指数测试它的5或10。

if (originalNumber < pow(10, counter - 1) * 5){ 
    number = pow(10, counter - 1) * 5 
} 
else { 
    number = pow(10, counter) 
} 

我重复使用数字变量,您可以返回它或分配给其他变量。

编辑:刚刚发现这面旗帜是Objective - C的,同样适用

Double originalNumber = 456; 
int counter = 0; 
int number = (int) originalNumber; 
while(number != 0) { 
    counter = counter + 1; 
    number = number/10; 
} 

if(originalNumber < pow(10,counter - 1) * 5){ 
    number = pow(10, counter -1) * 5; 
} 
else { 
    number = pow(10, counter) 
} 
相关问题