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

Tích số N với chữ số lẻ lớn nhất của nó trong C

Cho số N. Tính tích N với chữ số lẻ lớn nhất trong N. Nếu không có chữ số lẻ → trả về -1.

Ví dụ

Đầu vào - N = 198

Đầu ra - 1782 (198 × 9)

Đầu vào - N = 15382

Đầu ra - 76910 (15382 × 5)

Đầu vào - N = 246

Đầu ra - -1 (không có chữ số lẻ)

Phương pháp

  • Hàm largestOdd(n): duyệt các chữ số (n%10), tìm max lẻ
  • Hàm findProduct(n): gọi largestOdd, nếu -1 trả về -1, ngược lại n × maxOdd

Chương trình mẫu

#include <stdio.h>

int largestOdd(int n) {
    int maxOdd = -1;
    while (n > 0) {
        int digit = n % 10;
        if (digit % 2 == 1 && digit > maxOdd)
            maxOdd = digit;
        n /= 10;
    }
    return maxOdd;
}

int findProduct(int n) {
    int maxOdd = largestOdd(n);
    if (maxOdd == -1) return -1;
    return n * maxOdd;
}

int main() {
    int n = 15637;
    printf("%d\n", findProduct(n));
    return 0;
}

Kết quả

109459

Giải thích: 15637 × 7 = 109459 (7 là chữ số lẻ lớn nhất)