- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用递归计算一些问题集,但每次我的返回值为 1。
这是我的功能
static int numberOfCoins(int n, int counter)
{
if (n >= 25)
{
phản++;
numberOfCoins(n - 25,counter);
}
else if (n >= 10)
{
phản++;
numberOfCoins(n - 10,counter);
}
else if (n >= 5)
{
phản++;
numberOfCoins(n - 5, counter);
}
else if (n > 0)
{
phản++;
numberOfCoins(n - 1, counter);
}
return counter;
}
这是我的电话
int returnValue = numberOfCoins(32, 0);
Console.WriteLine("counter: " + returnValue);
目标是将零钱返还给用户,给他尽可能少的硬币数量,可用硬币为 25、10、5 和 1,因此在本例中为 return value
应该是4。我使用了断点并且一切正常,直到最后一分钟计数器将值从 4 变为 1。
我再说一遍,我可以使用循环轻松解决这个问题,但我的目标是理解 recursion
更好的。任何建议都是有帮助的,感谢您的宝贵时间。
câu trả lời hay nhất
当您调用 numberOfCoins
时,您只需丢弃返回值。相反,您应该使用它并将其添加到当前计数中。这也将允许您删除 counter
tham số:
static int numberOfCoins(int n)
{
if (n >= 25)
{
return 1 + numberOfCoins(n - 25);
}
else if (n >= 10)
{
return 1 + numberOfCoins(n - 10);
}
else if (n >= 5)
{
return 1 + numberOfCoins(n - 5);
}
else if (n > 0)
{
return 1 + numberOfCoins(n - 1);
}
trả về 0;
}
关于c# - 递归函数在 C# 中返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46506967/
Hàm sscanf() của ngôn ngữ C: đọc tệp tiêu đề dữ liệu theo định dạng đã chỉ định từ chuỗi: ?
Gần đây, tôi có một câu hỏi về đánh giá trước công việc mà tôi không biết cách giải quyết ngay cả khi đã truy vấn cách thức hoạt động của từng tính năng. Đây là một mã giả. Dưới đây là một hàm có tên foo() sẽ được truyền một giá trị và trả về một giá trị. Nếu bạn chuyển giá trị sau cho hàm foo,
Hàm CStr trả về một biểu thức đã được chuyển đổi thành Biến thể của kiểu con Chuỗi. Tham số biểu thức CStr(biểu thức) là bất kỳ biểu thức hợp lệ nào. Lưu ý rằng thông thường, bạn có thể
Hàm CSng trả về một biểu thức đã được chuyển đổi thành Biến thể của kiểu con Đơn. Tham số biểu thức CSng(biểu thức) là bất kỳ biểu thức hợp lệ nào. Mô tả Thông thường, nó có thể được
Hàm CreateObject tạo và trả về một tham chiếu đến đối tượng Tự động hóa. CreateObject(servername.typename [, location]) Dịch vụ tham số
Hàm Cos trả về cosin của một góc. Cos(số) Đối số số có thể là bất kỳ biểu thức số hợp lệ nào biểu thị một góc theo radian. Mô tả Hàm Cos lấy một góc và trả về tỷ lệ hai cạnh của một tam giác vuông. Tỷ lệ này là
Hàm CLng trả về một biểu thức đã được chuyển đổi thành Biến thể của kiểu con Dài. Tham số biểu thức CLng(biểu thức) là bất kỳ biểu thức hợp lệ nào. Mô tả Thông thường, bạn có thể sử dụng
Hàm CInt trả về một biểu thức đã được chuyển đổi thành Biến thể của kiểu con Số nguyên. Tham số biểu thức CInt(biểu thức) là bất kỳ biểu thức hợp lệ nào. Mô tả Thông thường, nó có thể được
Hàm Chr trả về ký tự tương ứng với mã ký tự ANSI đã chỉ định. Chr(charcode) Tham số charcode là một số xác định ký tự. Mô tả Các số từ 0 đến 31 thể hiện tiêu chuẩn không thể in được
Hàm CDbl trả về một biểu thức đã được chuyển đổi thành kiểu con Variant của Double. Tham số biểu thức CDbl(biểu thức) là bất kỳ biểu thức hợp lệ nào. Mô tả Thông thường, bạn có thể
Hàm CDate trả về một biểu thức đã được chuyển đổi thành kiểu con Biến thể của Ngày. CDate(date) Tham số ngày là bất kỳ biểu thức ngày hợp lệ nào. Giải thích rằng hàm IsDate được sử dụng để xác định d
Hàm CCur trả về một biểu thức đã được chuyển đổi thành Biến thể của kiểu con Tiền tệ. Tham số biểu thức CCu(biểu thức) là bất kỳ biểu thức hợp lệ nào. Mô tả Thông thường,
Hàm CByte trả về một biểu thức đã được chuyển đổi thành Biến thể của kiểu con Byte. Tham số biểu thức CByte(biểu thức) là bất kỳ biểu thức hợp lệ nào. Lưu ý rằng thông thường, bạn có thể
Hàm CBool trả về một biểu thức đã được chuyển đổi thành Biến thể của kiểu con Boolean. Biểu thức CBool(biểu thức) là bất kỳ biểu thức hợp lệ nào. Giải thích nếu cũ
Hàm Atn trả về arctang của một số. Tham số số Atn(number) có thể là bất kỳ biểu thức số hợp lệ nào. Mô tả: Hàm Atn tính tỷ lệ (số) hai cạnh của một tam giác vuông và trả về cung của góc tương ứng.
Hàm Asc trả về mã ký tự ANSI tương ứng với chữ cái đầu tiên của chuỗi. Asc(string) Tham số chuỗi là bất kỳ biểu thức chuỗi hợp lệ nào. Nếu tham số chuỗi không chứa ký tự thì sẽ xảy ra lỗi thời gian chạy.
Hàm Array trả về một Biến thể chứa một mảng. Array(arglist) Tham số arglist là danh sách các giá trị được phân tách bằng dấu phẩy để gán cho các phần tử mảng có trong Biến thể. Nếu tham số này không được chỉ định thì
Hàm Abs trả về giá trị tuyệt đối của một số. Abs(số) Đối số số có thể là bất kỳ biểu thức số hợp lệ nào. Nếu số chứa Null thì trả về Null; nếu biến chưa được khởi tạo thì trả về 0.
Hàm FormatPercent trả về một biểu thức đã được định dạng dưới dạng phần trăm có dấu % ở cuối (nhân với 100). FormatPercent(biểu thức[,NumDigitsAfterD
Hàm FormatNumber trả về một biểu thức đã được định dạng dưới dạng giá trị số. FormatNumber( biểu thức [,NumDigitsAfterDecimal [,Inc
Tôi là một lập trình viên xuất sắc, rất giỏi!