您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > c#经典问题算法集合
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Drawing;namespaceConsoleApplication3{/*classProgram{/*taticvoidMain(string[]args){boolflag=false;inth=0;for(inti=2;i1000;i++){flag=true;for(intj=2;ji/2;j++){if(i%j==0){flag=false;break;}}if(flag==true){Console.Write(+i);h++;if(h%9==0)Console.WriteLine(\n);}}Console.Write(\n+h=+h);Console.ReadKey();}*//*staticvoidMain(){Console.WriteLine(****************\n);Console.Write(有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?\n);Console.WriteLine(****************\n);inth=0;inti,j,k;for(i=1;i5;i++){for(j=1;j5;j++){for(k=1;k5;k++){if(i!=k&&i!=j&&j!=k){h++;Console.Write({0}{1}{2}\t,i,j,k);if(h%5==0)Console.Write(\n);}}}}}}*//////一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?////*classsq{staticpublicvoidMain(){doublex;doubley;for(inti=1;i100000;i++){x=Math.Sqrt(i+100);y=Math.Sqrt(i+100+168);if(x*x==i+100&&y*y==i+268){Console.Write(i+\t);}}Console.ReadKey();}}*///////输入某年某月某日,判断这一天是这一年的第几天?////*classdaytime{staticvoidMain(){Console.Write(输入你要查询的日期\n);intyear=int.Parse(Console.ReadLine());intmooth=int.Parse(Console.ReadLine());intday=int.Parse(Console.ReadLine());intsum=0;if((year%4==0&&year%100!=0)||(year%400==0)){if(mooth1){sum+=getday(mooth)+1+day;}else{sum=day;}}else{sum=getday(mooth)+day;}Console.WriteLine(***********);Console.Write(这是本年度的第+sum+天\n);Console.WriteLine(***********);Console.ReadKey();}publicstaticintgetday(inty){int[]a=newint[13];a[0]=0;a[1]=a[3]=a[5]=a[7]=a[8]=a[9]=a[10]=a[12]=31;a[2]=28;a[4]=a[6]=a[9]=30;intsum=0;for(inti=0;iy;i++){sum+=a[i];}returnsum;}}*///////输入三个整数x,y,z,请把这三个数由小到大输出。////*classcompare{publicstaticvoidMain(){Console.WriteLine(输入你要比较的三个值:\n);intx=int.Parse(Console.ReadLine());inty=int.Parse(Console.ReadLine());intz=int.Parse(Console.ReadLine());intt=0;if(xy){t=y;y=x;x=t;}if(xz){t=z;z=x;x=t;}if(yz){t=z;z=y;y=t;}Console.Write(x++y++z+);Console.ReadKey();}}*///////输出9*9口诀。////*classchengfabiao{publicstaticvoidMain(){for(inti=1;i=9;i++){for(intj=1;j=i;j++){Console.Write(i+*+j+=+i*j+);}Console.WriteLine(\n);}}}*///、///古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月///后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?///*class斐波那契数列{publicstaticvoidMain(){intf1,f2;f1=f2=1;intf3;inti=0;while(i=20){f3=f1+f2;i++;Console.Write(+f3);f1=f2;f2=f3;if(i%5==0){Console.WriteLine(\n);}}Console.ReadKey();}}*///////判断101-200之间有多少个素数,并输出所有素数。////*classoptinons{publicstaticvoidMain(){boolflag=false;inti;inth=0;intj;for(i=101;i=200;i++){flag=true;for(j=2;j=i/2;j++){if(i%j==0){flag=false;break;}}if(flag==true){Console.Write(+i);h++;}}Console.Write(\n+h=+h);}}*///////打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数////*classshuixianhua{publicstaticvoidMain(){inti,j,k;inth=0;for(intn=100;n1000;n++){i=n/100;j=n/10%10;k=n%10;if(Math.Pow(i,3)+Math.Pow(j,3)+Math.Pow(k,3)==n){Console.Write(+n);h++;if(h%5==0){Console.WriteLine(\n);}}}}}*///////求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时////*classmaths{publicstaticvoidMain(){inth=0;Console.Write(输入你要加的位数:);intd=int.Parse(Console.ReadLine());Console.Write(输入你要算的数***例如5:);intb=int.Parse(Console.ReadLine());doublei=0;intf=0;while(i=d){h+=b;f+=h;b*=10;++i;}Console.Write(h=+f);}}*//*classMmm{publicstaticvoidMain(){intnum=4;intn=2;longsum=0;for(inti=1;i=num;i++){stringt=;for(intj=1;j=i;j++){t+=n+;}sum+=long.Parse(t);}Console.WriteLine(sum+);Console.ReadKey();}}*///////利用碾乘法计算最大公约数最小公倍数////*classNium{publicstaticvoidMain(){Console.WriteLine(输入你要比较的两个的两个数:);intnum1=int.Parse(Console.ReadLine());intnum2=int.Parse(Console.ReadLine());inttemp;if(num1num2){temp=num1;num1=num2;num2=temp;}inta,b;a=num1;b=num2;while(b!=0){temp=a%b;a=b;b=temp;}Console.Write(最大公约数b=+a);Console.Write(最小公倍数a=+num1*num2/a);Console.ReadKey();}}*///////一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?////*classgrivaly{publicstaticvoidMain(){doubleh=100;doublesum=0;for(inti=1;i=10;i++){sum+=h*2;h/=2;}Console.Write(第十次的时候小球落地的高度是h=+h);Console.Write(总共经过了+sum+100);}}*///////猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个///第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下///的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。////*classpeach{publicstaticvoidMain(){intx1=0;intx2=1;intday=9;while(day0){x1=(x2+1)*2;x2=x1;day--;}Console.Write(桃子的总数是:+x1);}}*//*classpeach2{publicstaticvoidMain(){intx1=0;intx2=1;for(intday=9;day0;day--)//第一天的桃子总数等于第二天的桃子总数+1的2倍{x1=(x2+1)*2;x2=x1;}Console.Write(桃子的总数是:+x1);}}*///////打印出如下图案(菱形)///*///***///*****///*******///*****///***///*////*classdevice{publicstaticvoidMain(){for(inti=0;i=4;i++){for(intj=1;j=2*i-1;j++){Console.Write(*);}Console.Write(\n);}for(inti=3;i0;i--){for(intj=1;j=2*i-1;j++){Console.Write(*);}Console.Write(\n);}}}*///////有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。////*classfeibo{publicstaticvoidMain(){inta=1;intb=2;doublet=0;intc;for(inti=1;i20;i++){t+=b/a;c=a;a+=b;b=c;}Console.Write(2/1,3/2,5/3,8/5,13/8,21/13...的前20项之和等于+t+\n);}}*///////求1+2!+3!+...+20!的和////*classjiecheng{publicstaticvoidMain(){inth=0;;for(inti=1;i=20;i++){h+=Fact(i);}Console.Write(1+2
本文标题:c#经典问题算法集合
链接地址:https://www.777doc.com/doc-6816773 .html