Ở đây chúng ta sẽ xem cách lấy độ chênh giữa X chữ số đầu và X chữ số cuối của một số N. Số và X được cho. Để giải quyết bài toán này, chúng ta phải tìm độ dài của số, sau đó cắt X chữ số cuối bằng toán tử modulus. Sau đó cắt tất cả chữ số của số trừ X chữ số đầu. Sau đó lấy độ chênh, và trả về kết quả. Giả sử số là N = 568424. X là 2 nên hai chữ số đầu là 56, và hai chữ số cuối là 24. Độ chênh là (56 - 24) = 32.
Thuật toán
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|
endVí dụ
#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);
}Kết quả
Enter number and number of digits from first and last: 568424 2 Difference: 32