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


我们将在本文中看到如何获取数字 N 的前 X 位和后 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

更新于: 30-Jul-2019

383 次浏览

Kickstart Your Career

完成课程后获得认证

立即开始
广告