region for语句.docx
《region for语句.docx》由会员分享,可在线阅读,更多相关《region for语句.docx(25页珍藏版)》请在冰点文库上搜索。
regionfor语句
#regionfor语句
publicclassC3
{
#region表达式求值
//计算奇数之和,偶数之积
publicstaticvoidSun7()
{
//两个for循环
intsum1=0;
intdbResult1=1;
for(inti=1;i<=10;i+=2)
{
sum1+=i;
}
for(intj=2;j<=10;j+=2)
{
dbResult1*=j;
}
Console.WriteLine("双for循环,奇数之和"+sum1+"偶数之积"+dbResult1);
//单for循环
intsum2=0;
intdbResult2=1;
for(intx=1;x<=10;x++)
{
if(x%2==1)
{
sum2+=x;
}
else
{
dbResult2*=x;
}
}
Console.WriteLine("单for循环,奇数之和"+sum2+"偶数之积"+dbResult2);
//While循环
//while循环做1--100之内的偶数之积和奇数之和
intm=1;//定义循环变量
doubledbSult=1;
intsum=0;
while(m<=10)
{
if(m%2==0)
{
dbSult*=m;
}
else
{
sum=sum+m;
}
m++;
}
Console.WriteLine("while循环,奇数之和:
{0}偶数之积:
{1}",sum,dbSult);
}
//1!
+2!
+3!
+4!
+…+10!
publicstaticvoidSun8()
{
doubledbnum=1;
doubledbsum=0;
for(inti=1;i<=10;i++)
{
dbnum*=i;
dbsum+=dbnum;//一个循环两件事情了;累积到dbsum上
}
Console.WriteLine("结果为:
"+dbsum);
}
//S=1-1/2+1/3-1/4+1/5+……+1/99的值。
publicstaticvoidSun9()
{
//拆分开计算
doubleeven=0;
doubleodd=0;
for(inti=1;i<=99;i++)
{
if(i%2==0)
{
even=even-1.0/i;
}
}
for(intj=0;j<=99;j++)
{
if(j%2==1)
{
odd=odd+1.0/j;
}
}
Console.WriteLine("双For循环的结果为:
"+(even+odd));
doubledbsum=0;
for(intk=1;k<=99;k++)
{
//偶数就有减法
if(k%2==0)
{
dbsum=dbsum-1.0/k;
}
else
{
dbsum=dbsum+1.0/k;
}
}
Console.WriteLine("单For循环的结果为:
"+dbsum);
}
#endregion
//打印乘法表1
publicstaticvoidFun1()
{
//打印表头
Console.WriteLine("九九乘法表");
//打印九九表
for(inti=1;i<=15;i++)
{
//计算并格式化输出九九表的内容
for(intj=1;j<=i;j++)
{
Console.Write("{0}x{1}={2}\t",i,j,i*j);
}
//换行
Console.WriteLine();
}
}
//打印乘法表2
publicstaticvoidFun1_1()
{
for(inti=1;i<=9;i++)
{
//i控制行
for(intj=1;j<=i;j++)
{
//j控制列i和j的关系是在每行中j<=i
Console.Write("{0}*{1}={2}",j,i,i*j);
//若拼接字符串使用
//str+=j+"x"+i+"="+i*j+"";
}
Console.WriteLine();
}
}
//输出直角三角形。
publicstaticvoidFun2()
{
for(inti=1;i<=9;i++)
{
for(intj=1;j<=i;j++)
{
Console.Write("*");
}
Console.WriteLine();
}
}
//输出菱形。
publicstaticvoidFun3()
{
for(inti=1;i<=4;i++)
{
for(intj=1;j<=4-i;j++)
{
Console.Write("");
}
for(intk=1;k<=2*i-1;k++)
{
Console.Write("*");
}
Console.WriteLine();
}
for(inta=1;a<=4;a++)
{
for(intg=1;g<=a;g++)
{
Console.Write("");
}
for(intf=1;f<=(6-2*a)+1;f++)
{
Console.Write("*");
}
Console.WriteLine();
}
}
//输出等腰三角形
publicstaticvoidFun4()
{
for(inti=1;i<=4;i++)
{
for(intj=1;j<=4-i;j++)
{
Console.Write("");
}
for(intk=1;k<=2*i-1;k++)
{
Console.Write("*");
}
Console.WriteLine();
}
Console.ReadLine();
}
#region本例演示验证回文数
//方法一:
首尾相比较的方法
publicstaticvoidFun5()
{
Console.WriteLine("请输入数字:
");
stringstr=Console.ReadLine().Trim();
boolbl=true;//默认值设为true
//装换成字符数组
char[]ch=str.ToCharArray();
//循环控制第一个字符和最后一个字符的比较
for(inti=0;i{
if(ch[i]!
=ch[ch.Length-i-1])
{
bl=false;
break;
}
}
if(bl)
{
Console.WriteLine("Yes");
}
else
{
Console.WriteLine("No");
}
}
//方法二:
首尾相比较截取的方法
publicstaticvoidFun6()
{
Console.WriteLine("请输入数字:
");
stringstr=Console.ReadLine().Trim();
boolbl=true;
for(inti=0;i{
if(str.Substring(i,1)!
=str.Substring(str.Length-i-1,1))
{
bl=false;
break;
}
}
if(bl)
{
Console.WriteLine("Yes");
}
else
{
Console.WriteLine("No");
}
//显然第一种方法的效率要高于第二种
}
//方法三:
反转字符数组的方法
publicstaticvoidFun7()
{
Console.WriteLine("请输入数字:
");
stringstr=Console.ReadLine().Trim();
//转换成字符数组
char[]ch=str.ToCharArray();
//反转字符数组
Array.Reverse(ch);
//转成新的字符串
stringstra=newstring(ch);
//比较两个字符串是否相同
if(str==stra)
{
Console.WriteLine("Yes");
}
else
{
Console.WriteLine("No");
}
}
//方法四:
本质上与第一种方法是一样的
publicstaticvoidFun8()
{
Console.WriteLine("请输入数字:
");
stringstr=Console.ReadLine().Trim();
ArrayListalist=newArrayList();
boolbl=true;
foreach(charchinstr)
{
alist.Add(ch);
}
for(inti=0;i{
if(alist[i].Equals(alist[alist.Count-i-1]))
{
bl=true;
}
else
{
bl=false;
break;
}
}
//或者使用这种形式
//for(inti=0;i//{
//if(alist[i].Equals(alist[alist.Count-i-1])==false)
//{
//bl=false;
//break;
//}
//}
if(bl)
{
Console.WriteLine("Yes");
}
else
{
Console.WriteLine("No");
}
}
//方法五:
publicstaticvoidFun9()
{
//判断是否是回文(回文如:
“上海自来水来自海上)
Console.WriteLine("请输入数字:
");
stringstr=Console.ReadLine().Trim();
char[]chr=str.ToCharArray();
boolflag=true;
for(inti=0;i{
if(chr[i]!
=chr[chr.Length-1-i])
{
flag=false;
break;
}
}
if(flag)
{
Console.WriteLine("回文");
}
else
{
Console.WriteLine("不是回文");
}
}
#endregion
#region1234组成无重复的数组
publicstaticvoidFun10()
{
//由1,2,3,4能组成多少个个、十、百、千位互不相同的四位数
for(inti=1;i<=4;i++)
{
for(intj=1;j<=4;j++)
{
for(intk=1;k<=4;k++)
{
if(i!
=j&&i!
=k&&j!
=k)
{
Console.Write(i.ToString()+j.ToString()+k.ToString()+"");
}
}
Console.WriteLine();
}
}
}
//变换一种形式
publicstaticintctr=0;
publicstaticvoidFun11()
{
//有1234可以组成多个十百无重复的数字
for(inti=1;i<=4;i++)
{
for(intj=1;j<=4;j++)
{
for(intk=1;k<=4;k++)
{
if(i!
=j&&i!
=k&&j!
=k)
{
ctr++;
Console.WriteLine(String.Concat(i.ToString(),j.ToString(),k.ToString()));
}
}
}
}
Console.WriteLine(ctr);
}
//形式2
publicstaticvoidFun12()
{
//由1,2,3,4能组成多少个个、十、百、千位互不相同的四位数
for(inti=1;i<=4;i++)
{
for(intj=1;j<=4;j++)
{
for(intk=1;k<=4;k++)
{
for(intl=1;l<=4;l++)
{
if(i!
=j&&i!
=k&&i!
=l&&j!
=k&&j!
=l&&k!
=l)
{
Console.Write(i.ToString()+j.ToString()+k.ToString()+l.ToString()+"");
}
}
}
Console.WriteLine();
}
}
}
#endregion
//寻找素数101-200内的素数
publicstaticvoidSun1()
{
//显示101-200内的素数使用整数作为判断的标准
intinta=0;
intcount=0;
for(inti=101;i<=200;i++)
{
//将1和它本身之外的数全都除一遍
for(intj=2;j
{
//若有一个除尽了,证明该数不是素数
if(i%j==0)
{
inta=1;
break;
}
}
//如果inta等于0证明该数是素数
if(inta==0)
{
Console.Write(i+"");
count++;
}
if(count%10==0)
{
Console.WriteLine();
}
inta=0;
}
}
//水仙花数
publicstaticvoidSun2()
{
//方式一
for(inti=1;i<=9;i++)
{
for(intj=0;j<=9;j++)
{
for(intk=0;k<=9;k++)
{
if(Math.Pow(i,3)+Math.Pow(j,3)+Math.Pow(k,3)==i*100+j*10+k)
{
Console.Write("{0}",i*100+j*10+k);
}
}
}
}
//方式二
for(inti=100;i<=999;i++)
{
inta=i/100;//对100求整,获取百位数字
intb=i/10%10;//对10求整获取98,然后对10求余
intc=i%10;//直接对10求余获取个位数字
if(i!
=a*a*a+b*b*b+c*c*c)
{
//结束本次循环,开启下一次循环
//结束本次循环,代表continue后面的语句不执行
continue;
}
Console.Write("{0}",i);
//if(i==a*a*a+b*b*b+c*c*c)
//{
////结束本次循环,开启下一次循环
////结束本次循环,代表continue后面的语句不执行
//Console.Write("{0}",i);
//}
}
}
//数列问题
publicstaticvoidSun3()
{
#region分析
//题目:
有数列1,1,2,3,5,8,13,21,……请算出第30位的数是几?
//有数列1,1,2,3,5,8,13,21,……请算出第30位的数是几?
//分析问题:
找循环变量和循环中止条件即第几次得出第30位数
//第1次运算得到的是第3位数
//第2次运算得到的是第4位数
//第3次运算得到的是第5位数
//第4次运算得到的是第6位数
//第5次运算得到的是第7位数,根据规律得知循环进行到第28次时便得到了第30位数
//关键:
for循环是用来控制运算次数的
//1+1=2;
//1+2=3;
//2+3=5;
//3+5=8;
#endregion
intfirst=1,second=1;
for(inti=0;i<=27;i++)
{
//每次运算的first的值都来自于上次运算second的值,
//所以用一个中间变量记录上次second的值
//借助中间变量来记录
//每次运算的第一个数都是上一次运算的第二个数,而每次运算的第二
//个数都是上次运算的和
inttemp=second;
second=first+second;
first=temp;
}
Console.WriteLine("单位移动的结果为:
"+second);
first=1;
second=1;
for(intj=0;j<=13;j++)
{
//两位两位的移
first=first+second;
second=first+second;
}
Console.WriteLine("两位移动的结果为:
"+second);
}
//数列求和
publicstaticvoidSun3_1()
{
//一列数的规则如下:
1、1、2、3、5、8、13、21、34......求第30位数是多少?
int[]intmr=newint[30];
intmr[0]=1;
intmr[1]=1;
for(inti=2;i{
intmr[i]=intmr[i-1]+intmr[i-2];
}
for(intj=0;j{
Console.WriteLine(intmr[j]);
}
}
//本例演示百钱百鸡
publicstaticvoidRun1()
{
//公鸡1只5元,母鸡1只3元,小鸡3只1元,
//现有100元钱,要求买100只鸡,请输出所有的可能组合。
//i控制公鸡的数量,最多买20只,j控制母鸡的数量,最多买33只
intk;
for(inti=0;i<=20;i++)//从0开始意味着公鸡可以一只也不买
{
for(intj=0;j<=33;j++)
{
//获得小鸡的数量
k=(100-i*5-j*3)*3;
//只数要满足100
if(i+j+k==100)
{
Console.WriteLine("公鸡数量:
{0},母鸡数量:
{1},小鸡数量:
{2}",i,j,k);
}
}
}
}
//输出100--200之间3或5的倍数
publicstaticvoidSun4()
{
intcnt=0;//计数器
stringstr="";
for(inti=100;i<=200;i++)
{
if(i%3==0)
{
cnt++;
str+=i+"";
if(cnt%5==0)
{
str+="\r\n";
}
}
elseif(i%5==0)
{
cnt++;
str+=i+"";
if(cnt%5==0)
{
str+="\r\n";
}
}
}
Console.WriteLine(str);
}
//取出球问题
publicstaticvoidSun5()
{
//有一袋球(100到200之间),如果一次数四个,则剩两个;
//一次数五个,则剩三个;
//一次数六个,则正好数完,编程求该袋球的个数。
for(inta=100;a<=200;a++)
{
if(a%4==2&&a%5==3&&a%6==0)
{
Console.WriteLine("总共{0}",a);
}
}
}
//判断字母是否为数字
publicstaticvoidSun6()
{
//从键盘输入一任意字符串判断是否全部是字母组