“最后一点就是坚持,有时候写这些东西真的很痛苦,很让人抓狂,但是你一旦你坚持下去,久而久之,你会看到自己的进步,某一天你回过头去看自己以前写的文章,当你能够说出:“写得真他妈菜”,那么恭喜你,已经你升级了“。
—— “程序员应该坚持写技术博客”原文链接:https://blog.csdn.net/d6619309/article/details/52727326
31.(20)Fibonacci序列的前二项是0和1,且每一个后继项是前二项的和。编一个程序,输出项值不大于100的Fibonacci序列。
int f1 = 0;//定义首项
int f2 = 1;//定义第二项
int f3;//定义第三项
while (f1 < 100)
{
f3 = f1 + f2;
Console.Write("{0},",f1);
f1 = f2;
f2 = f3;//斐波那契数列通项公式
}
Console.ReadKey();
32.(40)编一个程序,输入a,b,c的值,求出一元二次方程a*x*x+b*x+c=0的二个实数根。计算二个实数根必须使用Math类中的Sqrt()方法,计算指定数的开方。计算二个实数根,可以用公式(-b+Math.Sqrt(b*b-4*a*c))/(2*a)和(-b-Math.Sqrt(b*b-4*a*c))/(2*a)
double a, b, c;
double x1, x2;//声明变量
Console.WriteLine("请依次输入一元二次方程ax^2+bx+c=0的三个系数:");//输出字符串
a = double.Parse(Console.ReadLine());
b = double.Parse(Console.ReadLine());
c = double.Parse(Console.ReadLine());//将输入的字符串转化为相应的数据类型
if (b * b - 4 * a * c >= 0)
{
x1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a);
x2 = (-b - Math.Sqrt(b * b - 4 * a * c)) / (2 * a);//求根公式
Console.WriteLine("这个方程的两个实数根分别是{0},{1}", x1, x2);
}
else
Console.WriteLine("很抱歉,这个方程没有实数根^_^");
Console.ReadKey();
33.编一个程序,利用while循环语句,找出2到100之间的素数。
int i = 2, j;
bool b;
Console.WriteLine("2到100中的素数为:");
while (i <= 100)
{
b = true;
j = 2;
while (j <= i - 1)
{
if (i % j == 0)
{
b = false;
break;
}
j++;
}
if (b == true) Console.Write("{0} ", i);
i++;
}
Console.WriteLine();//输出结果
Console.ReadKey();
34.(20)编一个程序,用while循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至少有多少个。
int num = 2;
while (num < 100)
{
if (num % 2 == 1 && num % 3 == 1 && num % 4 == 1)//除以2余1且除以3余1且除以4余1
{
Console.Write("这篮鸡蛋至少有{0}个", num);
break;//找到这个数就停止执行否则继续循环
}
num++;//从2开始逐渐递增循环
35.(20)编一个程序,用for循环语句求出1到100之间的奇数之和。
int i, s = 0;
for (i = 1; i <= 100; i = i + 2)//(初始值,表达式,更新值)
{
s = s + i;//累加求和公式
}
Console.WriteLine("1-100之间所有奇数的和为{0}", s);//奇数之和等于(5050-(100/2))/2
Console.ReadKey();
36.(20)编一个程序,利用二重for循环语句,打印出九九乘法口诀表。
Console.WriteLine("========================九九乘法口诀表,专为中国儿童设计========================");
Console.WriteLine(Environment.NewLine);//换行
int s;
for (int i = 1; i <= 9; i++)//第一个乘数的循环递增
{
for (int j = 1; j <= i; j++)//第二个乘数的循环递增
{
s = i * j;
Console.Write("{0}*{1}={2} ", j, i, s);
}
Console.WriteLine();//两个循环结束后输出结果
}
Console.WriteLine(Environment.NewLine);//换行
Console.WriteLine("===============================Design By Zyy 2018===============================");
Console.ReadLine();
37.(20)编一个程序,定义一个有10个元素的数组,使用for循环语句,从键盘上输入10名同学的数学成绩,分别求出最高分和最低分,并且求出10名同学的数学平均成绩。
double[] math = new double[10];
Console.WriteLine("请依次输入10名学生的数学成绩:");
for (int i = 0; i < math.Length; i++)
{
math[i] = double.Parse(Console.ReadLine());
}
double max = math[0], min = math[0], ave, sum = 0;
for (int j = 0; j < math.Length; j++)
{
if (max < math[j])
max = math[j];
if (min > math[j])
min = math[j];
sum = sum + math[j];
}
ave = sum / math.Length;//取平均数
Console.WriteLine("最高分为{0},最低分为{1},平均分为{2}", max, min, ave);
Console.ReadKey();
38.(20)编一个程序,利用for循环语句,求出1!+2!+3!+...+10!的和。
int s = 0, jc = 1;
for (int j = 1; j <= 10; j++)
{
jc = jc * j;//每个数的阶乘
s = s + jc;
}
Console.WriteLine("1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的和为{0}", s);
Console.ReadLine();
39.(20)编一个程序,用for循环语句求出1到100之间的奇数之和,以及偶数之和。
int sumeven = 0, sumodd = 0;//声明变量:奇数和偶数的和分别为sumodd和sumeven
for (int even = 0; even <= 100; even = even + 2)//(even初始值,循环表达式,更新值)
{
sumeven = sumeven + even;
}
Console.WriteLine("1-100之间偶数的和为:{0}", sumeven);//输出
for (int odd = 1; odd <= 100; odd = odd + 2)
{
sumodd = sumodd + odd;
}
Console.WriteLine("1-100之间奇数的和为:{0}", sumodd);
Console.ReadKey();
40.(20)编一个程序,用for循环语句,从键盘输入10个实数,分别求出它们中的正数之和,以及负数之和。
int i;
double sum1 = 0, sum2 = 0, x;
for (i = 1; i <= 10; i++)//从输入的第一个数开始执行,循环十次
{
Console.Write("请输入一个实数:");
x = double.Parse(Console.ReadLine());
if (x > 0) //ifelse语句对正数求和和负数求和进行区分
sum1 += x;
else
sum2 = sum2+x; //赋值运算符的两种写法
} //大括号内的循环体为单次循环执行的内容
Console.WriteLine("正数之和:{0},负数之和:{1}", sum1, sum2);
Console.ReadKey();
以上十道题目是对上一篇循环语句讲解的巩固,所有知识点在之前均有涉及,出现的一个Math类的方法就是Math.sqrt()用在求解一元二次方程中求平方根。其余不再赘述,关键代码均有注释。
JKCQW!