void XuatUS(int n, int i = 1)
{
if (n == 1)
cout << n ;
if ( n % i == 0)
{
cout << i;
XuatUS(n,i+1);
}
else
XuatUS(n,i+1);
}
Nhờ xem giúp mình đọan code, chương trình chạy lỗi.
void XuatUS(int n, int i = 1)
{
if (n == 1)
cout << n ;
if ( n % i == 0)
{
cout << i;
XuatUS(n,i+1);
}
else
XuatUS(n,i+1);
}
Nhờ xem giúp mình đọan code, chương trình chạy lỗi.
Chuyển đoạn
if (n == 1)
cout << n ;
thành
if (n == 1 || n == i)
cout << n ;
vẫn lỗi.nếu sửa như vậy khi chạy xuất giá trị cuối cùng 2 lần.lỗi này: :warning C4717: ‘XuatUS’ : recursive on all control paths, function will cause runtime stack overflow
Bạn tham khảo cái này:
void XuatUS(int n, int i = 1)
{
if (i == n)
{
cout << n << endl;
return;
}
if (n % i == 0)
{
cout << i << endl;
}
XuatUS(n, i + 1);
}
Thêm đoạn này If ( n == i ) return; vào sau if( n== 1) cout << i << endln;
Chuẩn rồi đấy …
Rồi
,Cám ơn 2 bạn
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?