1.public int Fn(int n) { if(n=1)return 1; else return f(n-1); } 2.int a[]=new int[]{0,1,2,3,4,5,6,7,8,9}; foreach(int n in a) { console.write("{0} ",n); }
第一题delegate T SelfApplicable<T>(SelfApplicable<T> self); private static void FixedPoint() { SelfApplicable<Func<Func<Func<int, int>, Func<int, int>>, Func<int, int>>> Y = y => f => x => f(y(y)(f))(x); Func<Func<Func<int, int>, Func<int, int>>, Func<int, int>> Fix = Y(Y); Func<Func<int, int>, Func<int, int>> F = fac => x => x == 0 ? 1 : x * fac(x - 1); Func<int, int> factorial = Fix(F); MessageBox.Show(factorial(4).ToString());} 第二题int[] ia = new int[10]; for (int i = 0; i < ia.Length; i++) ia[i] = i; Array.ForEach(ia, i => MessageBox.Show(i.ToString()));
public int Fn(int n) { return n == 1 ? 1 : n * Fn(n - 1); }
class Program { static void Main(string[] args) { long number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("{0}!={1}",number,F(number)); Console.ReadLine(); } public static long F(long n) { if (n <= 1) return 1; else return n * F(n - 1); }
foreach(int n in a)
{
console.write(n);
}
是这样的吧,记不清了,悲剧
{
if(n=1)return 1;
else return f(n-1);
} 调用int i=Fn(10);//计算10的阶乘。
第2题如楼上所言
{
if(n=1)return 1;
else return f(n-1);
}
2.int a[]=new int[]{0,1,2,3,4,5,6,7,8,9};
foreach(int n in a)
{
console.write("{0} ",n);
}
private static void FixedPoint()
{
SelfApplicable<Func<Func<Func<int, int>, Func<int, int>>, Func<int, int>>>
Y = y => f => x => f(y(y)(f))(x); Func<Func<Func<int, int>, Func<int, int>>, Func<int, int>> Fix = Y(Y); Func<Func<int, int>, Func<int, int>>
F = fac => x => x == 0 ? 1 : x * fac(x - 1); Func<int, int> factorial = Fix(F); MessageBox.Show(factorial(4).ToString());}
第二题int[] ia = new int[10];
for (int i = 0; i < ia.Length; i++) ia[i] = i;
Array.ForEach(ia, i => MessageBox.Show(i.ToString()));
public int Fn(int n)
{
return n == 1 ? 1 : n * Fn(n - 1);
}
{
static void Main(string[] args)
{
long number = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{0}!={1}",number,F(number));
Console.ReadLine();
}
public static long F(long n)
{
if (n <= 1)
return 1;
else
return n * F(n - 1);
}
}//递归思路:F(5)->5*F(4)->5*4*F(3)………
那个foreach遍历的 大家也都写出来了 好好学学思路吧
{
if(n=1)return 1;
else return n*f(n-1);
}
也许人家是想找一个变态的解法,所以我就给个变态的解法……
用lambda实现不动点算子来实现,虽然不是自己写的。但写法够bt……
public int Fn(int n)
{
return n == 1 ? 1 : n * Fn(n - 1);
}
这个是正解