📄 example.cs
字号:
namespace Opus6
{
using System;
[Copyright("Copyright (c) 2001 by Bruno R. Preiss, P.Eng."), Version("$Id: Example.cs,v 1.8 2001/10/28 19:50:09 brpreiss Exp $")]
public class Example
{
public static int BinarySearch(ComparableObject[] array, ComparableObject target, int i, int n)
{
if (n == 0)
{
throw new ArgumentException("empty array");
}
if (n == 1)
{
if (array[i] != target)
{
throw new ArgumentException("target not found");
}
return i;
}
int num1 = i + (n / 2);
if (array[num1] <= target)
{
return Example.BinarySearch(array, target, num1, n - (n / 2));
}
return Example.BinarySearch(array, target, i, n / 2);
}
public static int Binom(int n, int m)
{
int[] numArray1 = new int[n + 1];
numArray1[0] = 1;
for (int num1 = 1; num1 <= n; num1++)
{
numArray1[num1] = 1;
for (int num2 = num1 - 1; num2 > 0; num2--)
{
int[] numArray2;
int num4;
(numArray2 = numArray1)[num4 = num2] = numArray2[num4] + numArray1[num2 - 1];
}
}
return numArray1[m];
}
public static void BucketSort(int[] a, int m)
{
int[] numArray1 = new int[m];
for (int num1 = 0; num1 < m; num1++)
{
numArray1[num1] = 0;
}
for (int num2 = 0; num2 < a.Length; num2++)
{
int num6;
numArray1[num6 = a[num2]] = numArray1[num6] + 1;
}
int num3 = 0;
for (int num4 = 0; num4 < m; num4++)
{
for (int num5 = numArray1[num4]; num5 > 0; num5--)
{
a[num3++] = num4;
}
}
}
private static void F()
{
throw new A();
}
public static int Factorial(int n)
{
if (n == 0)
{
return 1;
}
return (n * Example.Factorial(n - 1));
}
public static int Fibonacci(int n)
{
int num1 = -1;
int num2 = 1;
for (int num3 = 0; num3 <= n; num3++)
{
int num4 = num2 + num1;
num1 = num2;
num2 = num4;
}
return num2;
}
public static int Fibonacci(int n, int k)
{
if (n < (k - 1))
{
return 0;
}
if (n == (k - 1))
{
return 1;
}
int[] numArray1 = new int[n + 1];
for (int num1 = 0; num1 < (k - 1); num1++)
{
numArray1[num1] = 0;
}
numArray1[k - 1] = 1;
for (int num2 = k; num2 <= n; num2++)
{
int num3 = 0;
for (int num4 = 1; num4 <= k; num4++)
{
num3 += numArray1[num2 - num4];
}
numArray1[num2] = num3;
}
return numArray1[n];
}
public static int Fibonacci2(int n)
{
if ((n == 0) || (n == 1))
{
return n;
}
return (Example.Fibonacci2(n - 1) + Example.Fibonacci2(n - 2));
}
public static int Fibonacci3(int n)
{
if ((n == 0) || (n == 1))
{
return n;
}
int num1 = Example.Fibonacci3((n + 1) / 2);
int num2 = Example.Fibonacci3(((n + 1) / 2) - 1);
if ((n % 2) == 0)
{
return (num1 * (num1 + (2 * num2)));
}
return ((num1 * num1) + (num2 * num2));
}
public static int FindMaximum(int[] a)
{
int num1 = a[0];
for (int num2 = 1; num2 < a.Length; num2++)
{
if (a[num2] > num1)
{
num1 = a[num2];
}
}
return num1;
}
private static void G()
{
try
{
Example.F();
}
catch (A a1)
{
Opus6.Console.WriteLine(a1);
}
}
public static double Gamma()
{
double num1 = 0;
for (int num2 = 1; num2 <= 0x7a120; num2++)
{
num1 += (1 / ((double) num2)) - Math.Log((num2 + 1) / ((double) num2));
}
return num1;
}
public static int GeometricSeriesSum(int x, int n)
{
int num1 = 0;
for (int num2 = 0; num2 <= n; num2++)
{
int num3 = 1;
for (int num4 = 0; num4 < num2; num4++)
{
num3 *= x;
}
num1 += num3;
}
return num1;
}
public static int GeometricSeriesSum2(int x, int n)
{
int num1 = 0;
for (int num2 = 0; num2 <= n; num2++)
{
num1 = (num1 * x) + 1;
}
return num1;
}
public static int GeometricSeriesSum3(int x, int n)
{
return ((Example.Power(x, n + 1) - 1) / (x - 1));
}
public static int Horner(int[] a, int n, int x)
{
int num1 = a[n];
for (int num2 = n - 1; num2 >= 0; num2--)
{
num1 = (num1 * x) + a[num2];
}
return num1;
}
public static int Horner2(int[] a, int n, int x)
{
int num1 = a[n];
for (int num2 = n - 1; num2 >= 0; num2--)
{
num1 = (num1 * x) + a[num2];
}
return num1;
}
private static void Merge(ComparableObject[] array, int pos, int m, int n)
{
ComparableObject[] objArray1 = new ComparableObject[m + n];
int num1 = pos;
int num2 = pos + m;
int num3 = num2;
int num4 = num2 + n;
int num5 = 0;
while ((num1 < num2) && (num3 < num4))
{
if (array[num1] < array[num3])
{
objArray1[num5++] = array[num1++];
}
else
{
objArray1[num5++] = array[num3++];
}
}
while (num1 < num2)
{
objArray1[num5++] = array[num1++];
}
while (num3 < num4)
{
objArray1[num5++] = array[num3++];
}
for (num5 = 0; num5 < (m + n); num5++)
{
array[pos + num5] = objArray1[num5];
}
}
public static void MergeSort(ComparableObject[] array, int i, int n)
{
if (n > 1)
{
Example.MergeSort(array, i, n / 2);
Example.MergeSort(array, i + (n / 2), n - (n / 2));
Example.Merge(array, i, n / 2, n - (n / 2));
}
}
public static void One()
{
int num1 = 1;
Opus6.Console.WriteLine(num1);
Example.Two(num1);
Opus6.Console.WriteLine(num1);
}
public static void One2()
{
int num1 = 1;
Opus6.Console.WriteLine(num1);
Example.Two2(ref num1);
Opus6.Console.WriteLine(num1);
}
public static void One3()
{
Obj obj1 = new Obj();
Opus6.Console.WriteLine(obj1.field);
Example.Two3(obj1);
Opus6.Console.WriteLine(obj1.field);
Example.Three(ref obj1);
Opus6.Console.WriteLine(obj1.field);
}
public static double Pi(int trials)
{
int num1 = 0;
for (int num2 = 0; num2 < trials; num2++)
{
double num3 = RandomNumberGenerator.Next;
double num4 = RandomNumberGenerator.Next;
if (((num3 * num3) + (num4 * num4)) < 1)
{
num1++;
}
}
return ((4 * num1) / ((double) trials));
}
public static int Power(int x, int n)
{
if (n == 0)
{
return 1;
}
if ((n % 2) == 0)
{
return Example.Power(x * x, n / 2);
}
return (x * Example.Power(x * x, n / 2));
}
public static void PrefixSums(int[] a, int n)
{
for (int num1 = n - 1; num1 >= 0; num1--)
{
int num2 = 0;
for (int num3 = 0; num3 <= num1; num3++)
{
num2 += a[num3];
}
a[num1] = num2;
}
}
public static int Sum(int n)
{
int num1 = 0;
for (int num2 = 1; num2 <= n; num2++)
{
num1 += num2;
}
return num1;
}
public static void Three(ref Obj z)
{
z = new Obj();
Opus6.Console.WriteLine(z.field);
}
public static void Two(int y)
{
y = 2;
Opus6.Console.WriteLine(y);
}
public static void Two2(ref int y)
{
y = 2;
Opus6.Console.WriteLine((int) y);
}
public static void Two3(Obj y)
{
y.field = 2;
Opus6.Console.WriteLine(y.field);
}
public static void Typeset(int[] l, int D, int s)
{
int num1 = l.Length;
int[,] numArray1 = new int[num1, num1];
for (int num2 = 0; num2 < num1; num2++)
{
numArray1[num2, num2] = l[num2];
for (int num3 = num2 + 1; num3 < num1; num3++)
{
numArray1[num2, num3] = numArray1[num2, num3 - 1] + l[num3];
}
}
int[,] numArray2 = new int[num1, num1];
for (int num4 = 0; num4 < num1; num4++)
{
for (int num5 = num4; num5 < num1; num5++)
{
if (numArray1[num4, num5] < D)
{
numArray2[num4, num5] = Math.Abs((int) ((D - numArray1[num4, num5]) - ((num5 - num4) * s)));
}
else
{
numArray2[num4, num5] = 0x7fffffff;
}
}
}
int[,] numArray3 = new int[num1, num1];
for (int num6 = 0; num6 < num1; num6++)
{
numArray3[num6, num6] = numArray2[num6, num6];
for (int num7 = num6 - 1; num7 >= 0; num7--)
{
int num8 = numArray2[num7, num6];
for (int num9 = num7; num9 < num6; num9++)
{
int num10 = numArray2[num7, num9] + numArray3[num9 + 1, num6];
if (num10 < num8)
{
num8 = num10;
}
}
numArray3[num7, num6] = num8;
}
}
for (int num11 = 0; num11 < num1; num11++)
{
for (int num12 = num11; num12 < num1; num12++)
{
Opus6.Console.Write(numArray3[num11, num12] + " ");
}
Opus6.Console.WriteLine();
}
}
public class A : Exception
{
}
public class Obj
{
public Obj()
{
this.field = 1;
}
public int field;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -