N的前X位和后X位之间的绝对差?

在这里,我们将看到如何获取数字N的第一个和最后一个X位数之间的差。给出了数字和X。为了解决这个问题,我们必须找到数字的长度,然后使用模数运算符剪切最后的x位数字。之后,从数字中切除除前x个数字外的所有数字。然后求出差,并返回结果。令数字为N =568424。X为2,因此前两位数字为56,后两位数字为24。差值为(56-24)= 32。

算法

diffFirstLastDigits(N,X)

begin

   p := 10^X

   last := N mod p

   len := length of the number N

   while len is not same as X, do

      N := N / 10

      len := len -1

   done

   first := len

   return |first - last|

end

示例

#include <iostream>

#include <cmath>

using namespace std;

int lengthCount(int n){

   return floor(log10(n) + 1);

}

int diffFirstLastDigits(int n, int x) {

   int first, last, p, len;

   p = pow(10, x);

   last = n % p;

   len = lengthCount(n);

   while(len != x){

      n /= 10;

      len--;

   }

   first = n;

   return abs(first - last);

}

main() {

   int n, x;

   cout << "Enter number and number of digits from first and last: ";

   cin >> n >> x;

   cout << "Difference: " << diffFirstLastDigits(n,x);

}

输出结果

Enter number and number of digits from first and last: 568424 2 

Difference: 32

以上是 N的前X位和后X位之间的绝对差? 的全部内容, 来源链接: utcz.com/z/334892.html

回到顶部