赞
踩
1.求质数
2.有一列数1,1,2,3,5,........求第30个数
3.冒泡排序
4.请编写一个函数,能够计算10以内数的阶乘,尽量采用递归算法。(10!=3628800)。
5. 请编程实现此方法。将输入的整型数组,合并转换为逗号分隔的字符串。
6.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
7.请将字符串"I am a student"按单词逆序输出 如"student a am I"
8.C# 取两个数组的相同元素
9.有一个字符串 "I am a good man",设计一个函数,返回 "man good a am I"。
10.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
11.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
12.用C#写一段选择排序算法,要求用自己的编程风格。
13.有一个10个数的数组,计算其中不重复数字的个数。{3,5,9,8,10,5,3},用HashSet。
14. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:
15.程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
16.写一个冒泡排序
17. 写一个选择排序
18.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。
19.一个游戏,前20关是每一关自身的分数,1-30关每一关是10分,31-40关,每一关是20分,1-49关,每一关是30分,第50关是100分,输入你现在闯到的关卡数,求你现在拥有的分数。利用for嵌套if。
20.输入月份和日期,输出是今年的第多少天。(2月按照28天计算)利用switch case。
21..百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,如何在凑够100只鸡的情况下刚好花完100文钱?利用for嵌套+if筛选。
22.纸张可以无限次对折,纸张厚度为0.07毫米。问多少次对折至少可以超过8848?利用while。
1.求质数
质数也成为素数,质数就是这个数除了1和他本身两个因数以外,没有其他因数的数,叫做质数,和他相反的是合数,
就是除了1和他本身两个因数以外,还友其他因数的数叫做合数。
- //以下为函数部分
- static void cal(long x)
- {
- long sum = 1;
- byte row = 1;
- Console.Write("\n");
- for (long a = 3; a < x + 1; a++)
- {
- bool flag = true;
- for (long b = 2; b < (a / 2) + 1; b++)
- {
- if (a % b != 0) continue;
- flag = false;
- break;
- }
- if (flag)
- {
- if (row == 10) { Console.WriteLine(); row = 0; }
- if (sum == 1) Console.Write("{0,7}", 2);
- Console.Write("{0,7}", a);
- sum++; row++;
- }
- }
- Console.WriteLine("\n\n{0} 以内共有 {1} 个质数\n", x, sum);
- }

2.有一列数1,1,2,3,5,........求第30个数
- public static int Foo(int i)
- {
- if (i <= 0)
- return 0;
- else if (i > 0 && i <= 2)
- return 1;
- else
- return Foo(i - 1) + Foo(i - 2);
- }
3.冒泡排序
- //冒泡排序类
- public class sorter
- {
- public void Sort(int[] list)
- {
- int i, j, temp;
- bool done = false;
- j = 1;
- while ((j < list.Length) && (!done))
- {
- done = true;
- for (i = 0; i < list.Length - j; i++)
- {
- if (list[i] > list[i + 1])
- {
- done = false;
- temp = list[i];
- list[i] = list[i + 1];
- list[i + 1] = temp;
- }
- }
- j++;
- }
- }
- }

4.请编写一个函数,能够计算10以内数的阶乘,尽量采用递归算法。(10!=3628800)。
- public int jiecheng(int n)
- {
- if (n == 1)
- return 1;
- else if (n == 2)
- return 2;
- else
- return n * jiecheng(n - 1);
- }
5 请编程实现此方法。将输入的整型数组,合并转换为逗号分隔的字符串。
例如输入参数为整型数组{9,7,2},那么输出结果为字符串"9,7,2"。
- private static string Combine(int[] data)
- {
- string str = "";
- foreach (int s in data)
- {
- str += s.ToString() + ",";
- }
- return str;
- }
6.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
- //产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
- int[] arr = new int[100];
- ArrayList myList = new ArrayList();
- Random rad = new Random();
- while (myList.Count < 100)
- {
- int num = rad.Next(1, 101);
- if (!myList.Contains(num))
- {
- myList.Add(num);
- }
- }
- for (int i = 0; i < 100; i++)
- {
- arr[i] = (int)myList[i];
- }
- for (int i = 0; i < arr.Length; i++)
- {
- Console.Write(arr[i] + ",");
- }
- Console.ReadKey();

7.请将字符串"I am a student"按单词逆序输出 如"student a am I"
- string S = "I am a student";
- char[] C = new char[] { ' '};
- string[] n =S.Split(C);
- int length = S.Length;
- for (int i =length-1 ; i >=0; i--)
- {
- Console.Write(n[i]);
- if (i != 0)
- {
- Console.Write(" ");
- }
- }
8.C# 取两个数组的相同元素
摘要: 以往我们都是肯定绞尽脑汁,肯定什么循环,元素大小,什么因素都考虑进去。但是现在采用Linq可以很好的解决这个问题。找出两个或多个数组的相同项。代码如下:
- usingSystem;
- usingSystem.Collections.Generic;
- usingSystem.Linq;
- usingSystem.Text;
- namespaceTest4_03
- {
- classProgram
- {
- staticvoidMain(string[] args)
- {
- string[] names = {"Adams","Arthur","Buchanan","Tsbuchis","ShCian","FuchsiaLinda","DecheChen","Lotheer","FindLanciCade",
- "SorchLand","JiangZheng","MisiiLoda","Gtod","Dfac","Lama","BakCades","Losangle","ZheWQ","GehengDahaLothi","ToryLandey",
- "DakaLothy","BthLanda","MenNorth","Fith","FoxMain","DontM","Saobba","Del","Sala","Ghero","BhthLaPhda"};
- IEnumerable<string> skip = names.Skip(10);
- IEnumerable<string> take = names.Take(11);
- //取出两个序列中交集部分,按理论应该输出JiangZheng
- IEnumerable<string> intersect = skip.Intersect(take);
- foreach(varsinintersect)
- {
- Console.WriteLine(s);
- }
- Console.ReadKey();
- }
- }
- }

9.有一个字符串 "I am a good man",设计一个函数,返回 "man good a am I"。
- static string Reverse()
- {
- string s = "I am a good man";
- string[] arr = s.Split(' ');
- string res = "";
- for (int i = arr.Length - 1; i >= 0; i--)
- {
- res += arr[i];
- if (i > 0)
- res += " ";
- }
- return res;
- }
10.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
- class Program
- {
- static void Main(string[] args)
- {
-
- //有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
- //分解题目
- //条件:四个数字1、2、3、4 ;三位数:百位、十位、个位
- //要求:互不相同;无重复数字:每个数字在三位中只出现一次
- //结果:多少个? 都是多少?
-
- int count = 0; //统计个数
- for (int bw = 1; bw <= 4; bw++)
- {
- for (int sw = 1; sw <= 4; sw++)
- {
- if (sw!= bw) //很显然,只有百位和十位不同的情况下才能谈个位。
- {
- for (int gw = 1; gw <= 4; gw++)
- {
- if (gw != sw && gw != bw) //百位用过的,十位就不能用;百位和十位都用过的,个位就不能用
- {
- count++;
- Console.WriteLine("{0}{1}{2}", bw, sw, gw);
- }
- }
- }
- }
- }
- Console.WriteLine("一共有{0}个", count);
- Console.Read();
-
- }
- }

11.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
- int[] intArr=new int[100];
- ArrayList myList=new ArrayList();
- Random rnd=new Random();
- while(myList.Count<100)
- {
- int num=rnd.Next(1,101);
- if(!myList.Contains(num))
- myList.Add(num);
- }
- for(int i=0;i<100;i++)
- intArr[i]=(int)myList[i];
12.用C#写一段选择排序算法,要求用自己的编程风格。
- public void xuanZhe(int[] list)//选择排序
- {
- for (int i = 0; i < list.Length – 1; i++)
- {
- min = i;
- for (int j = i + 1; j < list.Length; j++)
- {
- if (list[j] < list[min])
- min = j;
- }
- int t = list[min];
- list[min] = list[i];
- list[i] = t;
- }
- }
13.有一个10个数的数组,计算其中不重复数字的个数。{3,5,9,8,10,5,3},用HashSet。
- int[] values = { 3, 5, 9, 8, 10, 5, 3 };
- HashSet<int> set = new HashSet<int>();
- foreach (int i in values)
- {
- set.Add(i);
- }
- foreach (int i in set)
- {
- Console.WriteLine(i);
- }
14. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:
(1)A参加时,B也参加;
(2)B和C只有一个人参加;
(3)C和D或者都参加,或者都不参加;
(4)D和E中至少有一个人参加;
(5)如果E参加,那么A和D也都参加。
- static void Main(string[] args)
- {
- char[] name={'A','B','C','D','E'};
- int[] value = new int[5];
- for (value[0]=0;value[0]<2;value [0]++)
- for (value[1]=0; value[1] < 2; value[1]++)
- for (value[2]=0; value[2] < 2; value[2]++)
- for (value[3]=0; value[3] < 2; value[3]++)
- for (value[4]=0; value[4] < 2; value[4]++)
- {
- if ((value[1] >= value[0]) && (value[1] + value[2] == 1) && (value[2] == value[3]) && (value[3] + value[4]==1) && (value[4]==0 || value[4]==1 && value[0]==1 && value[3]==1))
- {
- for (int i = 0; i < 5; i++)
- {
- if (value[i]==1)
- {
- Console.WriteLine("{0}参加", name[i]);
- }
- else
- {
- Console.WriteLine("{0}不参加", name[i]);
- }
- }
- }
- }
- }

15.程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
- public delegate void SubEventHandler();
- public abstract class Subject
- {
- public event SubEventHandler SubEvent;
- protected void FireAway()
- {
- if (this.SubEvent != null)
- this.SubEvent();
- }
- }
- public class Cat : Subject
- {
- public void Cry()
- {
- Console.WriteLine(cat cryed.);
- this.FireAway();
- }
- }
- public abstract class Observer
- {
- public Observer(Subject sub)
- {
- sub.SubEvent += new SubEventHandler(Response);
- }
- public abstract void Response();
- }
- public class Mouse : Observer
- {
- private string name;
- public Mouse(string name, Subject sub) : base(sub)
- {
- this.name = name;
- }
- public override void Response()
- {
- Console.WriteLine(name + attempt to escape!);
- }
- }
- public class Master : Observer
- {
- public Master(Subject sub) : base(sub){}
- public override void Response()
- {
- Console.WriteLine(host waken);
- }
- }
- class Class1
- {
- static void Main(string[] args)
- {
- Cat cat = new Cat();
- Mouse mouse1 = new Mouse(mouse1, cat);
- Mouse mouse2 = new Mouse(mouse2, cat);
- Master master = new Master(cat);
- cat.Cry();
- }
- }
-
-

16.写一个冒泡排序
- public class bubblesorter
- {
- public void sort(int[] list)
- {
- int i, j, temp;
- bool done = false;
- j = 1;
- while ((j < list.Length) && (!done))
- {
- done = true;
- for (i = 0; i < list.Length - j; i++)
- {
- if (list[i] > list[i + 1])
- {
- done = false;
- temp = list[i];
- list[i] = list[i + 1];
- list[i + 1] = temp;
- }
- }
- j++;
- }
- }
- }

17. 写一个选择排序
- public class selectionsorter
- {
- private int min;
- public void sort(int[] list)
- {
- for (int i = 0; i < list.Length - 1; i++)
- {
- min = i;
- for (int j = i + 1; j < list.Length; j++)
- {
- if (list[j] < list[min])
- min = j;
- }
- int t = list[min];
- list[min] = list[i];
- list[i] = t;
- }
- }
- }

18.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。
- public class MainClass
- {
- public static void Main()
- {
- Console.WriteLine(Foo(30));
- }
- public static int Foo(int i)
- {
- if (i <= 0)
- return 0;
- else if(i > 0 && i <= 2)
- return 1;
- else return Foo(i -1) + Foo(i - 2);
- }
- }
19.一个游戏,前20关是每一关自身的分数,1-30关每一关是10分,31-40关,每一关是20分,1-49关,每一关是30分,第50关是100分,输入你现在闯到的关卡数,求你现在拥有的分数。利用for嵌套if。
- Console.Write("输入你闯的关卡数:");
- int a = int.Parse(Console.ReadLine());
- sum = 0;
- for (int i = 1; i <= a;i++ )
- {
- if(i>=1&&i<=20)
- {
- sum += i;
- }
- else if(i>=21&&i<=30)
- {
- sum += 10;
- }
- else if(i>=31&&i<=40)
- {
- sum += 20;
- }
- else if (i >= 41 && i <= 49)
- {
- sum += 30;
- }
- else
- {
- sum += 100;
- }
- }
- Console.WriteLine("总分为:" + sum);

20.输入月份和日期,输出是今年的第多少天。(2月按照28天计算)利用switch case。
- int sum = 0;
- int m1 = 31, m2 = 28, m3 = 31, m4 = 30, m5 = 31, m6 = 30, m7 = 31, m8 = 31, m9 = 30, m10 = 31, m11 = 30;
- Console.Write("请输入月份:");
- int m = int.Parse(Console.ReadLine());
- Console.Write("请输入几号:");
- int d = int.Parse(Console.ReadLine());
- switch(m)
- {
- case 1:
- sum = d;
- break;
- case 2:
- sum = m1 + d;
- break;
- case 3:
- sum = m1 + m2 + d;
- break;
- case 4:
- sum = m1 + m2 +m3+ d;
- break;
- case 5:
- sum = m1 + m2 + m3 +m4+ d;
- break;
- case 6:
- sum = m1 + m2 + m3 + m4+m5 + d;
- break;
- case 7:
- sum = m1 + m2 + m3 + m4 + m5+m6 + d;
- break;
- case 8:
- sum = m1 + m2 + m3 + m4 + m5 + m6+m7 + d;
- break;
- case 9:
- sum = m1 + m2 + m3 + m4 + m5 + m6 + m7+m8 + d;
- break;
- case 10:
- sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8+m9 + d;
- break;
- case 11:
- sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9+m10 + d;
- break;
- case 12:
- sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10+m11 + d;
- break;
- }
- Console.WriteLine("今年的第" +sum+ "天");

21..百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,如何在凑够100只鸡的情况下刚好花完100文钱?利用for嵌套+if筛选。
- int sum = 0;
- for (int x = 0; x <= 50;x++ )
- {
- for (int y = 0; y <= 100;y++ )
- {
- for (int z = 0; z <= 200;z++ )
- {
- if(x+y+z==100&&2*x+y+0.5*z==100)
- {
- sum++;
- Console.WriteLine("第"+sum+"种方法:"+x+"只公鸡,"+y+"只母鸡,"+z+"只小鸡。");
- }
- }
- }
- }
- Console.WriteLine("共有" + sum + "中方法。");

22.纸张可以无限次对折,纸张厚度为0.07毫米。问多少次对折至少可以超过8848?利用while。
- int a = 7, b = 884800000;
- int i=1;
- while(true)
- {
- a*=2;
- if(a>=b)
- {
- Console.WriteLine("第"+i+"次折叠。");
- Console.WriteLine("高度为"+a);
- break;
- }
- i++;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。