using System; using System.Data; namespace ConsoleApp926 { class Programs { static void Main(string[] args) {
//while循环 while(循环的判断条件)如果条件为真会一直执行循环体的内容
//死循环
while (true)
{
Console.WriteLine("1");
}
//有限循环换 只需让判断条件有一次变为假
int i = 10;
while (i > 2)
{
Console.WriteLine(i);
i--; /*循环10-》3,共8次*/
}
//例题输入整数a,计算1+2+3+...的值
int sum=0;
Console.WriteLine("请输入一个数n");
int n = Convert.ToInt32(Console.ReadLine());
int j = 1;
while (j<=n)
{
sum += j;
j++;
}
Console.WriteLine(sum);
//例题:输出1-100之间的所有偶数
int a=1;
while (a <= 100 && a%2==0)
{
Console.WriteLine(a);
a++;
}//没运行出来,改进
//例题2:对于任意大于1的自然数n,若n为奇数,将n编程为3n+1 ,否则将n变成n的一半,经过若干次变化后n最终会变为1
Console.WriteLine("请输入一个数n1");
int n1 = Convert.ToInt32(Console.ReadLine());
int j1 = 0;
while (n1 != 1)
{
if (n1% 2 == 1)
{
n1 = n1 * 3 + 1;
}
else{
n1 = n1 / 2;
}
j1++;
}
Console.WriteLine(j1);
//例题3:班上有若干名学生,输入学生的个数,然后输入学生的年龄,计算平均年龄,保留两位小数
Console.WriteLine("请输入学生个数n2");
int n2 = Convert.ToInt32(Console.ReadLine());
double age_sum = 0.0;
int n4 = n2;
while (n2>0)
{
Console.WriteLine("请输入第{0}个学生的年龄",n2);
int age = Convert.ToInt32(Console.ReadLine());
age_sum=age_sum+age;
n2--;
}
Console.WriteLine(Math.Round(age_sum / n4,2));
//for循环
//for (初始化; 判断条件; 增量表达式)
//{
// 循环体
//}
//例题4:输入两个正整数n和m,计算n和m之间(包含n和m)所有能被17整除的和,并输出和
Console.WriteLine("请输第一个数n");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入第二个数m");
int m = Convert.ToInt32(Console.ReadLine());
int n_sum = 0;
int num5 = n;
if (n > m) /*保证n<m*/
{
n = m;
m = num5;
}
for (int a=n; n<=m; a++)
{
if (a % 17 == 0)
{
Console.WriteLine(a);
n_sum = n_sum + a;
}
n++;
}
Console.WriteLine("能被17整除的数和为{0}", n_sum);
//do...while循环 不管后面的while循环的条件是否满足都先执行一次
//例题5:输入一个整数a,和一个正整数n计算乘方a的n次方
Console.WriteLine("请输第一个数a3");
Console.WriteLine("请输入初始高度");
Console.WriteLine("请输第一个数b3");
int b3 = Convert.ToInt32(Console.ReadLine());
int a_num = 1;
for(int i = 0; i < b3; i++)
{
a_num = a_num * a3;
}
Console.WriteLine(a_num);
//例题6:球从某一高度落下,每次反弹为原来高度的一半,再下落,计算第10次反弹多高?在十次落地时经过多少米
Console.WriteLine("请输入初始高度");
double height = Convert.ToDouble(Console.ReadLine());
double h_sum = 0;/*经过的高度*/
for( int h1 = 1; h1 <= 10;h1++)
{
h_sum = h_sum + height;/*初始高度*/
height = height / 2;
h_sum = h_sum + height; /*加上反弹回来的高度*/
}
Console.WriteLine("反弹的高度为{0},经过高度为:{1}",height,h_sum);
//例题7:打印水仙花数,一个三位数,各个数的立方等于该数,则称为水仙花数
for(int i = 100; i <= 999;i++)
{
int first_num = i /100;
int second_num = i / 10%10;
int third_num = i % 100 % 10;
int totle_num = first_num*first_num*first_num+second_num*second_num*second_num*third_num * third_num * third_num;
if (i==first_num * first_num * first_num + second_num * second_num * second_num + third_num * third_num * third_num)
{
Console.WriteLine(i);
}
}
}
}
}