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

Tìm tích chữ số lớn nhất của số ≤ N trong C++


Cho N > 0. Tìm tích chữ số lớn nhất trong các số ≤ N. N=390, kết quả 216 vì 389 cho 3*8*9=216.

Dùng đệ quy: N=0 trả 1; N<10 trả N; ngược lại max(max_product(N/10)*(N%10), max_product(N/10-1)*9).

Ví dụ mã nguồn

#include<iostream> using namespace std; int max_product(int N) {    if (N == 0)       return 1;    if (N < 10)       return N;    return max(max_product(N / 10) * (N % 10), max_product(N / 10 - 1) * 9); } int main() {    int N = 432;    cout << "Maximum product is: " << max_product(N); }

Kết quả

Maximum product is: 243