Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความต่างสัมบูรณ์ระหว่าง X หลักแรกและ X หลักสุดท้ายของ N

ที่นี่เราจะดูวิธาหาความต่างระหว่าง 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