///<summary>/// 3.(10分)编写方法,接收参数n,当(n=4)显示如下图形//A//B B B//C C C C C//D D D D D D D///</summary>
class Task03
{
publicstaticvoidShow(int lines)
{
for (int i = 1; i <= lines; i++)
{
for (int j = 0;j < 2*i-1; j++)
{
Console.Write((char)('A'+i-1)+" ");
}
Console.WriteLine();
}
}
}
/*5.(10分)编写方法,输入两个正整数m和n,求其最大公约数和最小公倍数 。*/
class Task05
{
publicstaticintGongYueShu(int m, int n)
{
int gongyue, i;
gongyue = m; //gongyue存放最大公约数 if (gongyue > n)
{
gongyue = n; //保证gongyue为m,n中的最小者
}
for (i = gongyue; i >= 1; i--) //求最大公约数
{
if ((m % i == 0) && (n % i == 0))
{
break;
}
}
gongyue = i;
return gongyue;
}
publicstaticintGongBeiShu(int m, int n)
{
int gongbei, j;
gongbei = m; //gongbei存放最小公倍数 if (gongbei < n)
{
gongbei = n; //保证gongbei为m,n中的最大者
}
for (j = gongbei; ; j++) //求最小公倍数
{
if ((j % m == 0) && (j % n == 0))
break;
}
gongbei = j;
return gongbei;
}
}
/*6. (10分)编写方法,参数为a和n,求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字,n表示一共几个数。例如2+22+222+2222+22222(此时a=2,n=5)。*/
class Task06
{
publicstaticintSum(char a,int n)
{
int sum = 0;
string[] number = newstring[n];
string temp = string.Empty;
for (int i = 0; i < n; i++)
{
number[i]=temp.PadLeft(i+1,a);
}
foreach (var item in number)
{
sum += int.Parse(item);
}
return sum;
}
}
/*7.(10分)编写方法,传入数组{3,5,2,3,4,1,2,2},该方法返回新的数组,且里面的元素为重复出现的元素,如{3,2}*/
class Task07
{
publicstaticchar[] Repeat(int[] arr)
{
string temp = string.Empty;
for (int i = 0; i < arr.Length - 1; i++)
{
if (temp.Contains(arr[i].ToString()) == false)
{
for (int j = i+1; j < arr.Length; j++)
{
if (arr[i] == arr[j])
{
temp += arr[i];
break;
}
}
}
else
{
continue;
}
}
char[] retArr = temp.ToCharArray();
return retArr;
}
}
/*8.(10分)利用递归方法求10的阶乘的一半*/
class Task08
{
publicstaticdoubleFactorial(double number)
{
if (number<=1)
{
return number/2;
}
else
{
return number * Factorial(number-1);
}
}
}
/*9.(10分)编写方法,求满足方程 x + 2y + 0.5z + 5w=200(x,y,z都小于100,大于0)的所有可能存在的变量组(x=?,y=?,z=?,w=?)*/
class Task09
{
publicstaticvoidVariableArr()
{
for (int x = 1; x < 100; x++)
{
for (int y = 1; y < 100; y++)
{
for (int z = 1; z < 100; z++)
{
for (int w = 1; w < 100; w++)
{
if (x+2*y+0.5*z+5*w == 200)
{
Console.WriteLine("x={0},y={1},z={2},w={3}",x,y,z,w);
}
}
}
}
}
}
}
/*10.(10分)编写方法,参数为一个字符串,返回所有"你好"的下标,如果不存在返回-1。*/
class Task10
{
publicstaticstringSearchStringIndex(string str)
{
string temp = string.Empty;
for (int i = 0; i < str.Length; i++)
{
if (str[i] == '你' && str[i + 1] == '好')
{
temp += i+1 + " ";
}
}
if (temp != string.Empty)
{
return temp;
}
return"-1";
}
}