获取4位整数的第二个最后一个值

时间:2016-07-07 13:47:44

标签: c++

我正在尝试一项希望用户输入2个4位整数的实验练习。然后程序将提取4位整数中的所有数字,并使用该数字进行算术计算,就像下面的图像链接一样。

Arithmetic Calculation with 2 4-digit integer

然而,本实验练习的目的不是允许我自己使用for循环来获得结果。

例如,当我想获得4位整数的最后一个数字时,我可以通过使用它来轻松完成。

int firstDigit = firstNo % 10; //i will get 4 if the integer is 1234
int secondDigit = secondNo % 10; //i will get 8 if the integer is 5678

当然,在使逻辑正确之前,表格格式化无需担心。接下来是使用从上面获得的数字非常简单的数字计算。

int addfirstNumbers = firstDigit + secondDigit;
int minusfirstNumbers = firstDigit - secondDigit;
int multiplefirstNumbers = firstDigit * secondDigit;
int modfirstNumbers = firstDigit % secondDigit;
double divfirstNumbers = firstDigit / secondDigit;

cout << "add: " << addfirstNumbers << endl
     << "minus " << minusfirstNumbers << endl
     << "multipile " << multiplefirstNumbers << endl
     << "remainder " << modfirstNumbers << endl
     << "division " << divfirstNumbers << endl;

我明白forloop可以让我的生活更轻松。但是我只是尝试了一个很长的方法,然后再试一下forloop的短路。

但即使在我继续之前,我仍然无法从这个4位整数中提取出其他数字。

3 个答案:

答案 0 :(得分:3)

与评论中提到的Mike Vine一样,你可以在取模之前进行整数除法。

#include <iostream>

int main(){
    int x = 1234;
    std::cout << (x/10)%10 << "\n";
}
#Output
3

编辑:这适用于所有数字的地方。要从结尾找到第n个值,只需向除数添加0即可。例如,为了找到最后一个,你想要将x除以100。

答案 1 :(得分:1)

你可以简单地做

int secondLastDigit = ((i - (i % 10)) % 100)) / 10;

对于i = 5678:

i % 10(5678%10)等于8

i - (i % 10)(5678 - 8)因此等于5670。

(i - (i % 10)) % 100(5670%100)等于70

最后(i - (i % 10)) % 100) / 10(70/10)= 7

答案 2 :(得分:0)

这很简单,只需在数字上使用模数运算符100(num%100),得到最后两位数,然后将结果除以10,并将数字存储在int中(所以十进制被正确截断。)