đệ quy: mình ko hiểu n/10 để làm gì?

đề bài:Tìm chữ số có giá trị lớn nhất của số nguyên dương n

#include "stdafx.h"
#include <iostream>
using namespace std;

//
int seekmax(int n,int &max)
{
	int m;
	if (n == 0) return  max;
	else
	{
		m = n % 10;
		if (m > max)
			max=m;
	}
	return seekmax(n/10,max);
}


int _tmain(int argc, _TCHAR* argv[])
{
	int n,max;
	cout << "nhap n=";
	cin >> n;
	cout << "seekmax=" << seekmax(n,max) << endl;
	return 0;
}
1 Like

Cái đề yêu cầu gì vậy? Với lại max của bạn chưa được khởi tạo, bạn dùng như thế thấy không ổn. Nên khởi tạo cho max = 0 trước.
n/10 là để bỏ đi chữ số cuối cùng của n sau khi gán chữ số cuối cùng đó cho m để so sánh. Khi không còn chữ số nào nữa (n = 0) thì trả về giá trị max.

1 Like

Tìm chữ số có giá trị lớn nhất của số nguyên dương n.

n/10 để giảm số xuống sau khi bạn lấy ở hàng đơn vị rồi. Ví dụ số 54321 thì sau khi lấy số 1 thì còn 5432. Sử dụng n/10 để lấy ra số 5432
Bạn viết Tiếng việt có dấu nhé :smiley:

1 Like

thì ra là vậy. cảm ơn nka.hihi

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?