ที่นี่เราจะดูวิธาหาความต่างระหว่าง X หลักแรก และ X หลักสุดท้าย ของตัวเลข N กำหนด N และ X มา หาความยาวของตัวเลข ตัด X หลักสุดท้ายด้วย modulus ตัดทิ้งหลักอื่นๆ เหลือแค่ X หลักแรก แล้วหาความต่างสัมบูรณ์ ตัวอย่าง N=568424, X=2 หลักแรก 2 ตัว = 56 หลักสุดท้าย 2 ตัว = 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 := N
return |first - last|
end
ตัวอย่างโค้ด (C++)
#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);
}
int 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