复习
//求最大篮球单词数 baskball
//输入字符串 判断里面单词数 a,b,e,k,l,s,t七个字母 2个s 5个e取里面次数最小的,用数组来收集
//假设a是下标0 以此类推 b->下标1 t->下标6 出现2次,a,l,b 算的时候要除以2 求出数组中最小的值
string str=Console.ReadLine();
int[] numArray = new int[7];
for(int i = 0; i < numArray.Length; i++)
{
if (str[i] == 'a')
{
numArray[0] += 1;
}
else if (str[i] == 'b')
{
numArray[1]++;
}
else if (str[i] == 'e')
{
numArray[2]++;
}
else if (str[i] == 'k')
{
numArray[3]++;
}
else if (str[i] == 'l')
{
numArray[4]++;
}
else if (str[i] == 's')
{
numArray[5]++;
}
else if (str[i] == 't')
{
numArray[6]++;
}
}
numArray[0] /= 2;
numArray[4] /= 2;
numArray[1] /= 2;
Console.WriteLine(numArray.Min());
函数的使用
//static是修饰符 表示静态函数 void表示返回值类型,如果没有返回值,返回值为空 那么类型为void 也可以是string int bool 型
Max(1);
static int Max(int num,int num1=2)/*函数名(形参1,形参2...),有初始值的放后面*/
{
Console.WriteLine(num);
return 2;/*当执行到return时表示函数的结束,return后面的函数不会执行*/
}
//例题1:求真素数 找出正整数N和M之间的所有真素数,
//真素数定义:如果一个正整数P为素数,且其返序也为素数,那么P就为真素数
//输入格式为两个数从小到大空格隔开,输出时按从小到大用逗号隔开
//创建方法,判断素数
static bool isPrime(int num)
{
for (int i = 0; i < num; i++)
{
if (num % i == 0)
{
return false;
}
}
return true;
}
//创建一个数将其翻转
static int getReverse(int num)
{
string strNum=Convert.ToString(num);
string strNum2 = "";
for(int i = 0; i < strNum.Length-1; i++)
{
strNum2 += strNum[i];
}
return Convert.ToInt32(strNum2);
}
//传入两个数
string str=Console.ReadLine();
string[] strArray = str.Split(" ");
int M=Convert.ToInt32(strArray[0]);
int N = Convert.ToInt32(strArray[1]);
string strOut = "";
//循环遍历 M到N的数 判断是否是真素数
for(int i=M; i<=N; i++)
{
if (isPrime(i) && isPrime(getReverse(i)){
if (strOut == "")
{
strOut += i;
}
else
{
strOut += ","+i;
}
}
}
Console.WriteLine(strOut);
//例题2:定义一个函数getDivisor,用来取一个数的所有因子,把所有因子返回
int num=Convert.ToInt32(Console.ReadLine());
getDivisor(num);
static int getDivisor(int num)
{
for(int i = 1; i < num; i++)
{
if (num % i == 0)
{
Console.WriteLine(i);
}
}
return num;
}
//递归 例题3:求斐波那契数列
static int Fib(int n)
{
if (n == 1 || n == 2) return 1;
return Fib(n - 1) + Fib(n - 2);
}
int num = Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= num; i++)
{
Console.WriteLine(Fib(i)+"");
}
//例题4:求1*1+2*2+3*3+...+k*k<2000 求出此关系的k的最大值
//f(k)=f(k-1)+k*k
static int getFk(int k)
{
if (k == 1) return 1;
return getFk(k-1)+k*k;
}
int i = 1;
while (true)
{
if(getFk(i) >=2000) break;
i++;
}
Console.WriteLine(i-1);
//例题5:猴子吃桃,第一天摘下n个桃子,当时就吃掉一半,多一个,第二天又吃掉1的一半多一个,以后每天都吃掉前一天剩下的一半多一个,
//到第10天时候只剩下一个,问一共摘下来多少个桃子?并反向打印每天所剩下的桃子数
//第十天:1,第九天:(1+1)*2=4,第八天:(4+1)*2=10,第七天:(10+1)*2=22.....
//f(n)=(f(n+1)+1)*2
static int getpc(int day)
{
if (day == 10) return 1;
return (getpc(day + 1) + 1) * 2;
}
for(int i = 1; i < 11; i++)
{
Console.WriteLine("第{0}天桃子数:{1}",i,getpc(i));
}