写一个方法 FindPoorer() C#
Write a method FindPoorer() C#
谁能解释一下如何处理这段代码?我已经写了 FindFisrtitem() 但是 FindPoorer() 我有一个问题...
1.I需要写一个方法FindPoorer();。方法必须找到最低账户余额,如果找不到,方法需要 return“Basia”。
- 同样的问题,但方法需要 return null。
我不期望 100% 解决任务,而是一个提示
using System;
namespace Poorer
{
class Item
{
public Item PreviousItem { get; set; }
public string Name { get; set; }
public double AccountBalance { get; set; }
public Item(string name, double balance, Item prevItem)
{
Name = name;
AccountBalance = balance;
PreviousItem = prevItem;
}
internal Item AddItem(string v1, int v2)
{
return new Item(v1, v2, this);
}
internal Item FindFirstItem()
{
//if (PreviousItem == null)
//{
// return this;
//}
//return PreviousItem.FindFirstItem();
var curr = this;
while (true)
{
if (curr.PreviousItem == null)
{
return curr;
}
curr = curr.PreviousItem;
}
}
internal Item FindPoorer()
{
if(AccountBalance > 0)
{
return ;
}
return FindPoorer();
}
}
class ListExcercise
{
static void Main(string[] args)
{
var basia = new Item("Basia", 100, null);
var kasia = basia.AddItem("Kasia", 50);
var isia = kasia.AddItem("Isia", 40);
var isia2 = isia.AddItem("Isia2", 20);
var isia3 = isia2.AddItem("Isia3", 40);
var first = isia3.FindFirstItem();
var poorer = isia3.FindPoorer();
Console.WriteLine("The poorer person is: " + poorer.Name);
}
}
}
就像在 FindFirstItem()
中那样循环遍历列表。
将当前项目与最差项目(截至目前)进行比较,然后在到达列表末尾时 return 它。
这里不需要使用递归。
伪代码:
internal Item FindPoorer()
{
var curr = this;
var poorest = this;
while (true)
{
if (curr.balance < poorest.balance)
{
poorest = curr;
}
if (curr.PreviousItem == null)
{
return poorest;
}
curr = curr.PreviousItem;
}
}
谁能解释一下如何处理这段代码?我已经写了 FindFisrtitem() 但是 FindPoorer() 我有一个问题...
1.I需要写一个方法FindPoorer();。方法必须找到最低账户余额,如果找不到,方法需要 return“Basia”。
- 同样的问题,但方法需要 return null。
我不期望 100% 解决任务,而是一个提示
using System;
namespace Poorer
{
class Item
{
public Item PreviousItem { get; set; }
public string Name { get; set; }
public double AccountBalance { get; set; }
public Item(string name, double balance, Item prevItem)
{
Name = name;
AccountBalance = balance;
PreviousItem = prevItem;
}
internal Item AddItem(string v1, int v2)
{
return new Item(v1, v2, this);
}
internal Item FindFirstItem()
{
//if (PreviousItem == null)
//{
// return this;
//}
//return PreviousItem.FindFirstItem();
var curr = this;
while (true)
{
if (curr.PreviousItem == null)
{
return curr;
}
curr = curr.PreviousItem;
}
}
internal Item FindPoorer()
{
if(AccountBalance > 0)
{
return ;
}
return FindPoorer();
}
}
class ListExcercise
{
static void Main(string[] args)
{
var basia = new Item("Basia", 100, null);
var kasia = basia.AddItem("Kasia", 50);
var isia = kasia.AddItem("Isia", 40);
var isia2 = isia.AddItem("Isia2", 20);
var isia3 = isia2.AddItem("Isia3", 40);
var first = isia3.FindFirstItem();
var poorer = isia3.FindPoorer();
Console.WriteLine("The poorer person is: " + poorer.Name);
}
}
}
就像在 FindFirstItem()
中那样循环遍历列表。
将当前项目与最差项目(截至目前)进行比较,然后在到达列表末尾时 return 它。
这里不需要使用递归。
伪代码:
internal Item FindPoorer()
{
var curr = this;
var poorest = this;
while (true)
{
if (curr.balance < poorest.balance)
{
poorest = curr;
}
if (curr.PreviousItem == null)
{
return poorest;
}
curr = curr.PreviousItem;
}
}