Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Độ chênh tuyệt đối giữa X chữ số đầu và X chữ số cuối của N

Ở đâ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|
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);
}

Kết quả

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