PDA

View Full Version : متد بازگشتی عدد کامل



Mahboob.m_1993
جمعه 09 آبان 1393, 20:33 عصر
سلام دوستان.من چجوری میتونم این کد رو به حالت بازگشتی بنویسم؟
سوال این هست که:متدی بصورت بازگشتی بنویسید که تعیین کند عدد وارد شده کامل هست یا خیر؟

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CompleteNumber
{
class Program
{
static void Main(string[] args)
{
int num, sum = 0, n;
Console.Write("enter the number:");
num = int.Parse(Console.ReadLine());
n = num;
for (int i = 1; i < num; i++)
{
if (num % i == 0)
{
sum = sum + i;
}
}
if (sum == n)
{
Console.WriteLine("\n kamel hast");
}
else
Console.WriteLine("\n kamel nist");
Console.ReadLine();
Console.ReadKey();
}
}
}

pedram.11
جمعه 09 آبان 1393, 21:40 عصر
سلام جوون.
بفرمایید:
bool khkhkh(int x, int i = 1, int sum=0)
{
if (x <= 1 || i >= x)
return false;
if (sum == x)
return true;
else if (sum > x)
return false;
if (x % i == 0)
sum += i;
if (khkhkh(x, i + 1, sum))
return true;
return false;
}
static void Main(string[] args)
{
int num;
Console.Write("enter the number:");
num = int.Parse(Console.ReadLine());
if (khkhkh(num))
Console.WriteLine("\n kamel hast");
else
Console.WriteLine("\n kamel nist");
Console.ReadLine();
Console.ReadKey();
}

mreram
شنبه 10 آبان 1393, 02:04 صبح
static int sum = new int();
static int func(int number,int i=1)
{

if (i != number)
{

if (number % i == 0)
{
sum += i;


}
if (sum == number)
return sum;
else
{


return func(number, i + 1);
}

}
return 0;
}

int x =Int32.Parse( Console.ReadLine());
if (func(x)==x)
Console.Write("kamel");
else
Console.Write("kamel nist");