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