C# c上的友好数#
今天是我关于堆栈溢出的第一个问题,谢谢大家的回答(我的英语不好,对不起) 事实上,我在一个程序中使用它,显示友好的数字10000中的0。 程序重复数字我不明白为什么不工作好 图片: 284和220和284如何删除重复号码 友好号码示例: 220的除数是1、2、4、5、10、11、20、22、44、55和110:其和是284。284(1,2,4,71和142)的除数之和等于220 我的代码是:C# c上的友好数#,c#,function,C#,Function,今天是我关于堆栈溢出的第一个问题,谢谢大家的回答(我的英语不好,对不起) 事实上,我在一个程序中使用它,显示友好的数字10000中的0。 程序重复数字我不明白为什么不工作好 图片: 284和220和284如何删除重复号码 友好号码示例: 220的除数是1、2、4、5、10、11、20、22、44、55和110:其和是284。284(1,2,4,71和142)的除数之和等于220 我的代码是: class Program { static int SumaDivisors(int nom
class Program
{
static int SumaDivisors(int nombre)
{
int suma;
suma = 0;
for (int contador = 1; contador < nombre; contador++)
{
if (nombre % contador == 0)
{
suma = suma + contador;
}
}
return suma;
}
static void Main(string[] args)
{
Console.WriteLine("Busca els nombres amics entre 0 i 10000");
int numero, suma1, suma2;
for (numero = 1; numero < 10000; numero++)
{
suma1 = SumaDivisors(numero);
suma2 = SumaDivisors(suma1);
if (suma1 != numero && suma2 == numero)
{
Console.WriteLine("Els nombre {0} i {1} són nombres amics", suma1, suma2);
}
}
Console.ReadKey();
}
}
类程序
{
静态int-SumaDivisors(int-nombre)
{
内苏马;
suma=0;
for(int contador=1;contador
考虑这种情况:numero=220
,然后suma1=284
,所以suma2=220
。然后考虑<代码>数字=284 < /代码>,然后<代码> SUMA1=220 < /COD>和SO <代码> SUMA2=284 < /代码>,正好相反。其他对也一样
对于解决方案,您可以做的最简单的检查是仅在
suma1时打印。考虑这种情况:numero=220
,然后suma1=284
和suma2=220
。然后考虑<代码>数字=284 < /代码>,然后<代码> SUMA1=220 < /COD>和SO <代码> SUMA2=284 < /代码>,正好相反。其他对也一样
对于解决方案,您可以做的最简单的检查是仅当suma1在迭代过程中发现两次时才打印。为了消除重复,您可以添加一个列表以防止该对再次显示:
static void Main(string[] args)
{
Console.WriteLine("Busca els nombres amics entre 0 i 10000");
var list = new List<int>();
int numero, suma1, suma2;
for (numero = 1; numero < 10000; numero++)
{
suma1 = SumaDivisors(numero);
suma2 = SumaDivisors(suma1);
if (suma1 != numero && suma2 == numero && !list.Contains(suma1) && !list.Contains(suma2))
{
list.Add(suma1);
list.Add(suma2);
Console.WriteLine("Els nombre {0} i {1} són nombres amics", suma1, suma2);
}
}
Console.ReadKey();
}
static void Main(字符串[]args)
{
Console.WriteLine(“Busca els nombres amics entre 0 i 10000”);
var list=新列表();
国际号码,suma1,suma2;
对于(numero=1;numero<10000;numero++)
{
suma1=SumaDivisors(数字);
suma2=SumaDivisors(suma1);
if(suma1!=numero&&suma2==numero&&!list.Contains(suma1)&&!list.Contains(suma2))
{
添加列表(suma1);
列表。添加(suma2);
Console.WriteLine(“Els nombre{0}i{1}són nombres amics”,suma1,suma2);
}
}
Console.ReadKey();
}
在迭代过程中可能会发现两次。为了消除重复,您可以添加一个列表以防止该对再次显示:
static void Main(string[] args)
{
Console.WriteLine("Busca els nombres amics entre 0 i 10000");
var list = new List<int>();
int numero, suma1, suma2;
for (numero = 1; numero < 10000; numero++)
{
suma1 = SumaDivisors(numero);
suma2 = SumaDivisors(suma1);
if (suma1 != numero && suma2 == numero && !list.Contains(suma1) && !list.Contains(suma2))
{
list.Add(suma1);
list.Add(suma2);
Console.WriteLine("Els nombre {0} i {1} són nombres amics", suma1, suma2);
}
}
Console.ReadKey();
}
static void Main(字符串[]args)
{
Console.WriteLine(“Busca els nombres amics entre 0 i 10000”);
var list=新列表();
国际号码,suma1,suma2;
对于(numero=1;numero<10000;numero++)
{
suma1=SumaDivisors(数字);
suma2=SumaDivisors(suma1);
if(suma1!=numero&&suma2==numero&&!list.Contains(suma1)&&!list.Contains(suma2))
{
添加列表(suma1);
列表。添加(suma2);
Console.WriteLine(“Els nombre{0}i{1}són nombres amics”,suma1,suma2);
}
}
Console.ReadKey();
}
当此if语句的左操作数为TRUE时[例如(suma1!=numero)]:
然后,它不会继续求值第二个操作数[eg(suma2==numero)],这样就不会捕捉到条件……这称为短路求值。当此if语句的左操作数为真[eg(suma1!=numero)]:
然后它不会继续求值第二个操作数[例如(suma2==numero)],这样就不会捕捉到这种情况……这称为短路求值。我不能在工作时访问imgur。你能将相关信息复制到问题中吗?如果其他人对此很熟悉,我不能在工作时访问imgur。你能将相关信息复制到问题中吗?如果其他人听上去很熟悉,谢谢你的回答,这是一个非常简单的解决方案,而且工作正确。你需要将配对存储在一个列表中,然后从列表中删除重复项(或者不添加已经存在的数字)。int[,]data={{284220}、{220284}、{12101184}、{11841210}、{29242620}、{2620224}、{55645020}、{50205564}、{63686232}、{62326368}@MarcCM,如果这个答案对你有用,一定要接受这个答案谢谢这个答案,这是一个非常简单的解决方案,而且它的工作是正确的。你需要将这些对存储在一个列表中,然后从列表中删除重复项(或者不要添加已经存在的数字)。int[,]data={{284220}、{220284}、{12101184}、{11841210}、{29242620}、{2620224}、{55645020}、{50205564}、{63686232}、{62326368}@MarcCM,如果这个答案对你有用的话,一定要接受它谢谢你的答案,很好的选择,但我不理解这个解决方案。我是c#world的新手,谢谢你的回答,很好的选择,但我不理解这个解决方案。我是c#world的新手谢谢你的建议,我是这个世界的新手,我感谢你的选择。谢谢你的建议,我是这个世界的新手,我感谢你的选择。