Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

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