c++ - 修剪十分之一和千分之几的算法

标签 c++ objective-c algorithm numbers

我需要检测我需要显示哪个与用户分数相对应的词。

我有下一个开关:

switch (score) {
        case 0:
            outString = @"String1";
            break;
        case 1:
            outString = @"String2";
            break;
        case 2:
            outString = @"String3";
            break;
        case 3:
            outString = @"String3";
            break;
        case 4:
            outString = @"String3";
            break;
        case 5:
            outString = @"String1";
            break;
        case 6:
            outString = @"String1";
            break;
        case 7:
            outString = @"String1";
            break;
        case 8:
            outString = @"String1";
            break;
        case 9:
            outString = @"String1";
            break;           

        default:
            break;
    }

但是,当分数为 29 或 109 时,我如何使用相同的开关。所以我需要在第一种情况下修剪 20 以获得 9,在第二种情况下我需要修剪 100 以获得 9。

我以前用过这个算法,但是我忘记了如何:(

所以接下来是目标 - 我每次都只需要 0 - 9 的数字,而不需要百分之一千分之一的数字。

最佳答案

如果你的单词总是取决于数字的最后一位,你可以简单地在切换条件中使用它(使用模数运算符):

switch (score % 10)
   ...

如果只有 29 和 129 是特殊情况,那么您可以对同一情况使用多个标签:

case 9:
case 29:
case 109:
        outString = @"String1";
        break;

关于c++ - 修剪十分之一和千分之几的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18186104/

相关文章:

c++ - 无法正确调用 `connect`

c++ - 在 header 内限定 using 声明的范围

ios - 从 NSTimer 回到主线程

algorithm - 迭代BTreeSet和HashSet的时间复杂度是多少?

c - 实现基于整数的幂函数 pow(int, int) 的最有效方法

javascript - 在复杂度为 O(n) 的 Javascript 对象中查找 3 个最大值的键?

c++ - 类方法无法访问 protected 成员 "Error: identifier is undefined"

c++ - 使用一个参数推导模板参数?

iphone - 遇到一些我不知道的代码语法。谁能解释一下

objective-c - 获取 UIManagedDocument 的 URL