Computer >> Máy Tính >  >> Lập trình >> lập trình C

Hiệu số tuyệt đối giữa chữ số X đầu tiên và chữ số X cuối cùng của N?

Ở đây chúng ta sẽ xem làm thế nào để có được sự khác biệt giữa chữ số X đầu tiên và cuối cùng của một số N. Số và X đã cho. Để giải quyết vấn đề này, chúng ta phải tìm độ dài của số, sau đó cắt x chữ số cuối cùng bằng cách sử dụng toán tử mô đun. Sau đó cắt tất cả các chữ số từ số ngoại trừ x chữ số đầu tiên. Sau đó nhận chênh lệch và trả về kết quả. Gọi số là N =568424. X là 2 nên hai chữ số đầu là 56 và hai chữ số cuối là 24. Hiệu 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|
end

Ví 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);
}

Đầu ra

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