作为一名学习者,我只是在研究 C,并写了这个小 function ...
char *getPlaceSuffix(int number) {
static char *suffixes[] = {"st", "nd", "rd", "th"};
if (number >= 11 && number <= 13) {
return suffixes[3];
} else {
while (number > 10) {
number -= 10;
}
if (number >= 1 && number <= 3) {
return suffixes[number - 1];
} else {
return suffixes[3];
}
}
}
我在推特上发布了链接,Konrad Rudolph告诉我我获得最小有效数字的方法是 O(n) 并且效率不高。
Unfortunately, it’s O(n) for very large number – to make it O(logn), adjust the while loop for higher powers of 10 …
我不太熟悉大 O 表示法,但我明白 O(n) 效率不是很高的要点?
正如您从我的代码示例中看到的那样,我减去 10 直到数字长度为一位数,因此我可以比较它以查看哪个后缀合适。我快速玩了一下除法和模数,但没弄明白。
那么,我的问题是,获取数字中最低有效数字的最佳方法是什么?
我还在学习,所以请放轻松:)
谢谢!
最佳答案
number % 10
应该可以。
关于c - 用 C 获得整数中最正确数字的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3988373/