1.回文是指顺读和倒读都一样的字符串。写一个方法,判断一个字符串str1,是否是回文,是回文返回true,否则返回false。例如字符串b是ag7ga是回文,而字符串abc6es就不是回文。要求编写应用程序,来检验方法的正确性
static bool IsPalindrome( string input)
{
char[] charArray = input.ToCharArray();
Array.Reverse(charArray);
string reversedStr = new string(charArray);
return input.Equals(reversedStr, StringComparison.OrdinalIgnoreCase);//不区分大小写;
}
2.写一个方法,统计一个字符串中单词的个数,返回值为单词个数。规定单词之间由若干个空格隔开。例如若输入字符串" I am a student ",得到结果为 4。要求编写应用程序,来检验方法的正确性
static int WordNum(string word)
{
string[] words = word.Split(new char[] { ' ' } , StringSplitOptions.RemoveEmptyEntries);
return words.Length;
}
3.写一个方法,判断的一个正整数是否是素数,返回值为布尔类型。要求编写应用程序,求1 - 100之间的所有素数
static bool isPrime(int num)
{
if (num <= 1)
{
return false;
}
// 判断从2到number-1之间是否存在能整除number的数
for (int i = 2; i <= Math.Sqrt(num); i++)
{
if (num % i == 0)
{
return false;
}
}
return true;
}
4.输入一个字符串,统计字符串中英文字母、数字字符和其他它符号的个数并输出。要求编写应用程序,来检验方法的正确性
static void CountCharacters(string str, out int letterCount, out int digitCount, out int symbolCount)
{
letterCount = 0;
digitCount = 0;
symbolCount = 0;
foreach (char c in str)
{
if (char.IsLetter(c))
{
letterCount++;
}
else if (char.IsDigit(c))
{
digitCount++;
}
else
{
symbolCount++;
}
}
}
5.写一个方法,对正整数m求和,其中求和公式为s = 1 / 2 + 1 / 3 +…+1 / m,方法返回s的值。要求编写应用程序,来检验方法的正确性
static double Msum(int m)
{
double s = 0;
for(int i = 2; i <= m; i++)
{
s += 1.0 / i;
}
return s;
}
6.写一个方法,将一个字符串中所有英文字符后加一个$字符,并返回处理后的字符串。例如输入:A1B23CD45,则方法返回值为:A$1B$23C$D$45,要求编写应用程序,来检验方法的正确性
static string AddStr(string str)
{
string result = "";
for (int i = 0; i < str.Length; i++)
{
if (char.IsLetter(str[i]))
{
result += str[i] + "$";
}
else
{
result += str[i];
}
}
return result;
}
7.写一个方法,删去所有字符串中的小写字符,其余字符不变。方法返回转变后的字符串。str = "AbC" 转变为串为 = "AC",要求编写应用程序,来检验方法的正确性
static string DeleteLower(string str)
{
string nstr = "";
foreach(char c in str)
{
if (char.IsUpper(c))
{ nstr += c; }
}
return nstr;
}
8.写一个方法,对一个字符串,按如下规则加密:如果是英文字母则大写变小写、小写变大写,对非英文字符则保持不变。返回值为返回加密字符串。要求编写应用程序,来检验方法的正确性
static string Encipher(string str)
{
char[] chars = str.ToCharArray();
for (int i = 0; i < chars.Length; i++)
{
if (char.IsLetter(chars[i]))
{
if (char.IsUpper(chars[i]))
{
chars[i] = char.ToLower(chars[i]);
}
else
{
chars[i] = char.ToUpper(chars[i]);
}
}
}
return new string(chars);
}
9.写一个方法,求两个整数m和 n 的最大公约数,并作为返回值返回。要求编写应用程序,来检验方法的正确性
static int Greatest(int m,int n)
{
//辗转相除法
while (n != 0)
{
int temp = n;
n = m % n;
m = temp;
}
return m;
//for循环
int greatest = 1;
for (int i = m;i>=1;i--)
{
if(m%i == 0 && n % i == 0)
{
greatest = i;
break;
}
}
return greatest;
}
10.写一个方法,求两个整数m和 n 的最小公倍数,并作为返回值返回。要求编写应用程序,来检验方法的正确性
static int ComputeGBS(int m,int n)
{
int minGBS = 1;
if (m > n)
{
for (int i = n; i <= m * n; i++)
{
if (i % n == 0 && i % m == 0)
{
minGBS = i;
break;
}
}
}else if (m == n)
{
minGBS = m;
}
else
{
for (int i = m; i <= m * n; i++)
{
if (i % n == 0 && i % m == 0)
{
minGBS = i;
break;
}
}
}
return minGBS;
//乘积/最大公约数
//m*n/Greatest(m,n)
}
11.写一个方法,求s = 1 / a + 1 / aa + 1 / aaa + 1 / aaaa + 1 / aa...a的值,其中a是用户定义的数字。例如1 / 2 + 1 / 22 + 1 / 222 + 1 / 2222 + 1 / 22222(此时共有5个数相加),返回值为和s。要求编写应用程序,来检验方法的正确性
static double CalculateSeriesSum(int a,int n)
{
double sum = 0;
double denominator = 0;
for (int i = 1; i <= n; i++)
{
denominator = denominator * 10 + a;
sum += 1 / denominator;
}
return sum;
}
12.写一个方法,判断一个数是否是完数,返回值为布尔类型。一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6 = 1+2+3。要求编写应用程序,来检验方法的正确性
static bool JudgingPN(int num)
{
int sum = 0;
for(int i = 1; i < num; i++)
{
if (num % i == 0)
sum += i;
}
if(sum==num) return true;
else return false;
}
13.写一个方法,求分数序列:2 / 1,1 / 3,3 / 4,4 / 7,7 / 11,11 / 18...的前10项之和,并返回。要求编写应用程序,来检验方法的正确性
static double CalculateSeriesSum(int n)
{
//分母是前一项分子+分母,分子为前一项的分母
double sum = 0;
double numerator = 2;//分子
double denominator = 1;//分母
for (int i = 1; i <= n; i++)
{
double term = numerator / denominator;
sum += term;
double temp = numerator;
numerator = denominator;//分子=前一项分母
denominator = temp + denominator;//分母为前一项的分子+分母
}
return sum;
}
14.写一个方法,求1 + 1 / 2! + 1 / 3! + ...+1 / n!的和,并将和作为返回值返回,要求编写应用程序,来检验方法的正确性
static double CalculateFactorialSum(int n)
{
double sum = 0;
double factorial = 1;
for (int i = 1; i <= n; i++)
{
factorial *= i;
double term = 1 / factorial;
sum += term;
}
return sum;
}
15.写一个方法,对4位整数进行加密,加密规则如下:每位数字都加上7,然后用和除以10的余数代替该数字,再将第一位和第二位交换,第四位和第三位交换,该方法返回加密后的数字。要求编写应用程序,来检验方法的正确性
static int EncryptNumber(int number)
{
int qw = number / 1000;
int bw = (number / 100) % 10;
int sw = (number / 10) % 10;
int gw = number % 10;
qw = (qw + 7) % 10;
bw = (bw + 7) % 10;
sw = (sw + 7) % 10;
gw = (gw + 7) % 10;
int temp = qw;
qw = sw;
sw = temp;
temp = bw;
bw = gw;
gw = temp;
int encryptedNumber = qw * 1000 + bw * 100 + sw * 10 + gw;
return encryptedNumber;
}
16.在歌星大奖赛中,有7个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余5个分数的平均值。请编写一个方法实现。要求编写应用程序,来检验方法的正确性
static double CalculateFinalScore(int[] scores)
{
int maxIndex = 0;
int minIndex = 0;
for (int i = 1; i < scores.Length; i++)
{
if (scores[i] > scores[maxIndex])
{
maxIndex = i;
}
if (scores[i] < scores[minIndex])
{
minIndex = i;
}
}
int sum = 0;
for (int i = 0; i < scores.Length; i++)
{
if (i != maxIndex && i != minIndex)
{
sum += scores[i];
}
}
double average = sum / 5.0;
return average;
}
17.写一个方法,在一个字符串中查找最长单词,单词之间用空格分隔,并将最长单词作为方法返回值返回。要求编写应用程序,来检验方法的正确性
static string FindLongestWord(string input)
{
string[] words = input.Split(' ');
string longestWord = "";
foreach (string word in words)
{
if (word.Length > longestWord.Length)
{
longestWord = word;
}
}
return longestWord;
}
18.写一个方法,对于给定一个日期,返回该日为星期几。例如2002 - 3 - 28返回星期四。要求编写应用程序,来检验方法的正确性
static string GetDayOfWeek(DateTime date)
{
string dayOfWeek = date.DayOfWeek.ToString();
switch (dayOfWeek)
{
case "Monday":dayOfWeek = "星期一";break;
case "Tuesday":dayOfWeek = "星期二";break;
case "Wednesday": dayOfWeek = "星期三"; break;
case "Thursday": dayOfWeek = "星期四"; break;
case "Friday": dayOfWeek = "星期五"; break;
case "Saturday": dayOfWeek = "星期六"; break;
case "Sunday": dayOfWeek = "星期日"; break;
}
return dayOfWeek;
}
19.写一个方法,随机产生10个[20,50]的正整数存放到数组中,并输出数组中的所有元素最大值、最小值、平均值及各元素之和。要求编写应用程序,来检验方法的正确性
static void GenerateCharacters(out int[] numbers,out int max,out int min,out double avg,out int sum)
{
Random random = new Random();
numbers = new int[10];
for (int i = 0; i < 10; i++)
{
numbers[i] = random.Next(20, 51);
}
avg = 0;
sum = 0;
max = numbers[0];
for (int i = 1; i < numbers.Length; i++)
{
if (numbers[i] > max)
{
max = numbers[i];
}
}
min = numbers[0];
for (int i = 1; i < numbers.Length; i++)
{
if (numbers[i] < min)
{
min = numbers[i];
}
}
foreach (int num in numbers)
{
sum += num;
}
avg = (double)sum / numbers.Length;
}
20.已知一个数列的前两项分别为1,2,以后的各项都是其相邻的前两项之和,写一个方法,求计算并返回该数列前n项的平方根之和sum。要求编写应用程序,来检验方法的正确性
static double GetFibonacciSquareRootSum(int n)
{
if (n <= 0)
{
return 0;
}
double sum = 0;
int a = 1;
int b = 2;
sum += Math.Sqrt(a);
sum += Math.Sqrt(b);
for (int i = 3; i <= n; i++)
{
int c = a + b;
sum += Math.Sqrt(c);
a = b;
b = c;
}
return sum;
}
21.编写一个方法,判断一个数是否能被3整除但不能被7整除,编写应用程序,输出1 - 100以内的所有能被3整除但不能被7整除的数。要求编写应用程序,来检验方法的正确性
static void PDNumbers()
{
for (int i = 1; i <= 100; i++)
{
if ((i % 3 == 0) && (i % 7 != 0))
{
Console.Write(i + " ");
}
}
Console.WriteLine();
}
22.编写一个方法,计算1到n之间所有数的平方求和,要求编写应用程序,来检验方法的正确性
static int CalculateSquareSum(int n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
{
int square = (int)i * i;
sum += square;
}
return sum;
}
23.编写一个方法,判断一个三位数是否等于其每位数字的立方和,例如153 = 13 + 53 + 33,要求编写应用程序,来检验方法的正确性。要求编写应用程序,来检验方法的正确性
static bool IsArmstrongNumber(int number)
{
if (number < 100 || number > 999)
{
return false;
}
int originalNumber = number;
int sum = 0;
while (number != 0)
{
int digit = number % 10;
sum += digit * digit * digit;
number /= 10;
}
return (sum == originalNumber);
}
24.编写一个方法,判断一个数是否既能被3或者7整除,但同时不能被3和7整除,要求编写应用程序,来检验方法的正确性。要求编写应用程序,来检验方法的正确性
static bool IsDivisibleBy3Or7ButNotBoth(int number)
{
return (number % 3 == 0 || number % 7 == 0) && !(number % 3 == 0 && number % 7 == 0);
}