第三章 语法基础Ⅱ

上机练习

1. 编写一个控制台程序,要求将字符串中的每个字符颠倒输出。

string str = "ABC";
Console.WriteLine(str);
for (int i = str.Length - ; i >= ; i--)
{
Console.Write(str[i]);
}
Console.WriteLine();

2. 编写一个控制台程序,要求去掉字符串中的所有空格。

        //2. 编写一个控制台程序,要求去掉字符串中的所有空格。
string str = " ABC Dehg JJ";
Console.WriteLine(str);
//替换
string strss=str.Replace(" ", "");
Console.WriteLine(strss);
//分割
string[] strs = str.Split(new char[] {' '});
foreach (string item in strs)
{
Console.Write(item);
}
Console.WriteLine();

3. 编写一个控制台程序,实现从字符串中分离文件路径、文件名及扩展名的功能。

  //3. 编写一个控制台程序,实现从字符串中分离文件路径、文件名及扩展名的功能。
string path = @"F:\c\作业\3班作业\book.exe";
string[] paths = path.Split('.');
Console.WriteLine("扩展名:"+paths[]);
string[] pathss=paths[].Split('\\');
Console.WriteLine(paths[]);
Console.WriteLine("文件名:"+pathss[pathss.Length-]);
Console.WriteLine("路径:" + paths[].Remove());

4.  输入一个字符,判定它是什么类型的字符(大写字母,小写字母,数字或者其它字符)

//4.  输入一个字符,判定它是什么类型的字符(大写字母,小写字母,数字或者其它字符)
Console.WriteLine("请输入一个字符:");
char ch = (char)Console.Read();
if (char.IsUpper(ch))
{
Console.WriteLine("大写字母");
}
else if (char.IsLower(ch))
{
Console.WriteLine("小写字母");
}
else if (char.IsDigit(ch))
{
Console.WriteLine("数字");
}
else
{
Console.WriteLine("其他");
}

5. 输入一个字符串,将其中小写字母改成大写字母,把大写字母改成小写字母,其余字符不变,输出该字符串。

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text; namespace test3
{ class Program
{ static void Main(string[] args)
{
StringBuilder sb = new StringBuilder("aaddssFF");
for (int i = ; i < sb.Length;i++ )
{
if (char.IsUpper(sb[i]))
{
sb.Replace(sb[i], char.ToLower(sb[i]),i,);
}
else if (char.IsLower(sb[i]))
{
sb.Replace(sb[i], char.ToUpper(sb[i]), i, );
} }
Console.WriteLine(sb); }
}
}

扩展:统计下列字符串中,每个单词重复出现的次数(不区分大小写)。

Sample code may fit more than one of these areas. In those cases, place the sample so it matches the topics you are covering in your documents. Ask yourself what readers will learn from reading your topic. What will they learn from building and running your sample?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace test
{
class Program
{
static void Main(string[] args)
{
string str = "Sample Sample code may fit more than one of these areas. In those cases, place the sample so it matches the topics you are covering in your documents. Ask yourself what readers will learn from reading your topic. What will they learn from building and running your sample?";
str = str.ToUpper();
char[] ch = new char[] { ' ', ',', '.', '?' };
string[] strs = str.Split(ch);
Console.WriteLine(strs.Length);
string[] words = new string[strs.Length];
int num = ;
for (int i = ; i < strs.Length; i++)
{
if (!(words.Contains((strs[i]))))
{ words[num] = strs[i];
num++;
string temp = strs[i];
int count = ;
for (int j = ; j < strs.Length; j++)
{
if (strs[j] == temp)
{
count++;
}
}
Console.WriteLine(temp + "出现了" + count + "次!");
} }
Console.Read();
}
}
}

05 流程控制

1、从键盘输入一个字符,程序检查输入字符是否是小写字符、大写字符或数字。在任何一种情况下,都会显示适当的消息

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text; namespace test3
{ class Program
{ static void Main(string[] args)
{
//1、从键盘输入一个字符,程序检查输入字符是否是小写字符、大写字符或数字
char ch = Convert.ToChar(Console.ReadLine());
if (char.IsLower(ch))
{
Console.WriteLine("小写字母");
}
else if(char.IsUpper(ch))
{
Console.WriteLine("大写字母");
}
else if(char.IsDigit(ch))
{
Console.WriteLine("数字");
}
}
}
}

2、设计一个简单的猜数游戏:随机产生一个1-100的数,要求输入的数与随机产生的数进行比较,如果输入的数大于随机产生的数,提示:“对不起,您猜大了!”;如果输入的数小于随机产生的数,提示:“对不起,您猜小了!”;如果输入的数等于随机产生的数,提示:“恭喜您,您猜对了!”程序结束。

提示:随机产生一个1-100的整数的方法

Random rnd = new Random();//创建随机数种子

int rndNumber = rnd.Next(1, 100);//返回一个指定范围内的整数

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text; namespace test3
{ class Program
{ static void Main(string[] args)
{
//2、设计一个简单的猜数游戏:随机产生一个1-100的数,
//要求输入的数与随机产生的数进行比较,如果输入的数大于随机产生的数,
//提示:“对不起,您猜大了!”;如果输入的数小于随机产生的数,提示:“对不起,您猜小了!”
//;如果输入的数等于随机产生的数,提示:“恭喜您,您猜对了!”程序结束。
//提示:随机产生一个1-100的整数的方法
Random rnd = new Random();//创建随机数种子
int rndNumber = rnd.Next(, );//返回一个指定范围内的整数
Console.WriteLine("请猜数:");
while(true)
{
int num = Convert.ToInt32(Console.ReadLine());
if (num < rndNumber)
{
Console.WriteLine("猜小了");
}
else if (num > rndNumber)
{
Console.WriteLine("猜大了");
}
else
{
Console.WriteLine("恭喜您猜对了!");
break;
}
} }
}
}

3、从键盘输入一个数字作为行数,使用for循环语句,在命令窗口中绘制如图所示的“金字塔”。

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text; namespace test3
{ class Program
{ static void Main(string[] args)
{
//3、从键盘输入一个数字作为行数,使用for循环语句,
//在命令窗口中绘制如图所示的“金字塔”。
Console.WriteLine("请输出金字塔的行数:");
int num = Convert.ToInt32(Console.ReadLine());
for (int i = num-; i>=; i--)
{
for (int j = ; j < i; j++)
{
Console.Write(" ");
}
for (int k = ; k < *(num - i)-; k++)
{
Console.Write("*");
}
Console.WriteLine();
} }
}
}

4、创建一个控制台程序,计算1!+2!+3!+.....+n!的值并输出,n从键盘输入。

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text; namespace test3
{ class Program
{ static void Main(string[] args)
{
//4、创建一个控制台程序,计算1!+2!+3!+.....+n!的值并输出,n从键盘输入。
Console.WriteLine("请输入整数n:");
int n = Convert.ToInt32(Console.ReadLine());
int temp=;
int rel = ;
for (int i = n; i > ; i--)
{
temp = ;
for (int j = ; j <= i; j++)
{
temp = temp * j;
}
rel = rel + temp;
}
Console.WriteLine(rel); }
}
}

5、创建一个控制台程序,从键盘输入一个作为月份的数字,使用switch语句,将月份所在的季节输出到控制台。

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text; namespace test3
{ class Program
{ static void Main(string[] args)
{
//5、创建一个控制台程序,从键盘输入一个作为月份的数字,
//使用switch语句,将月份所在的季节输出到控制台。
Console.WriteLine("输入月份数字:");
int mo = Convert.ToInt32(Console.ReadLine());
switch (mo)
{
case :
case :
case :
Console.WriteLine("春季");
break;
case :
case :
case :
Console.WriteLine("夏季");
break;
case :
case :
case :
Console.WriteLine("秋季");
break;
default:
Console.WriteLine("冬季");
break;
} }
}
}

集合与泛型

1、数制转换问题。数制转换问题是将任意一个非负的十进制数转换为其它进制的数,这是计算机实现计算的基本问题。其一般的解决方法的利用辗转相除法。以将一个十进制数N转换为八进制数为例进行说明。假设N=5142,示例图:

N   N/8(整除)  N%8(求余)      低

5142   642 6

642 80 2

80 10 0

10 1 2

1 0 1 高

从图可知,(5142)10=(12026)8。编写一个控制台程序,实现十进制数转换成八进制数

(提示:转换得到的八进制数各个数位是按从低位到高位的顺序产生的,而转换结果的输出通常是按照从高位到低位的顺序依次输出。也就是说,输出的顺序与产生的顺序正好相反,这与栈的操作原则相符。所以,在转换过程中可以使用一个栈,每得到一位八进制数将其入栈,转换完毕之后再依次出栈。)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace test3
{ class Program
{
//十进制转八进制
static void Main(string[] args)
{
//以将一个十进制数N转换为八进制数为例进行说明。假设N=5142,示例图:
//从图可知,(5142)10=(12026)8。编写一个控制台程序,实现十进制数转换成八进制数
//(提示:转换得到的八进制数各个数位是按从低位到高位的顺序产生的,而转换结果的输出通常是按照从高位到低位的顺序依次输出。也就是说,输出的顺序与产生的顺序正好相反,这与栈的操作原则相符。所以,在转换过程中可以使用一个栈,每得到一位八进制数将其入栈,转换完毕之后再依次出栈。)
//2、编写一个控制台程序,把控制台输入的数组字符串(如:"123")转换为中文大写(如:壹贰叁)。(要求使用Dictonary<T>)
//3、编写一个控制台程序,实现List<T>的添加、插入、删除、查找、排序等功能。
Console.WriteLine("请输入一个十进制的数:");
int num = Convert.ToInt32(Console.ReadLine());
Stack<int> nums = new Stack<int>();
nums.Push(num % );
int n = num / ;
while(n!=)
{
nums.Push(n % );
n = n / ;
}
foreach (int item in nums)
{
Console.Write(item);
}
Console.ReadKey();
} }
}

2、编写一个控制台程序,把控制台输入的数组字符串(如:"123")转换为中文大写(如:壹贰叁)。(要求使用Dictonary<T>)

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text; namespace test3
{ class Program
{ static void Main(string[] args)
{
//2、编写一个控制台程序,把控制台输入的数组字符串(如:"123")转换为中文大写(如:壹贰叁)。
Console.WriteLine("请输入一个数组字符串:");
string str = Convert.ToString(Console.ReadLine());
//(要求使用Dictonary<T>)
Dictionary<int,string> dic= new Dictionary<int,string>();
dic.Add(,"一");
dic.Add(, "二");
dic.Add(, "三");
dic.Add(, "四");
dic.Add(, "五");
dic.Add(, "六");
dic.Add(, "七");
dic.Add(, "八");
dic.Add(, "九");
dic.Add(, "零");
Console.WriteLine("转换");
foreach (char item in str)
{
int n = (int)item -;
str=str.Replace(Convert.ToString(n),dic[n]);
}
Console.WriteLine(str);
//3、编写一个控制台程序,实现List<T>的添加、插入、删除、查找、排序等功能。
}
}
}

3、编写一个控制台程序,实现List<T>的添加、插入、删除、查找、排序等功能。

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text; namespace test3
{ class Program
{ static void Main(string[] args)
{ //3、编写一个控制台程序,实现List<T>的添加、插入、删除、查找、排序等功能。
//list实例化
List<string> li = new List<string>();
//List添加
li.Add("list1");
li.Add("list2");
li.Add("list3");
li.AddRange(li);
//list删除
li.Remove("list1");
li.RemoveAt();
//list查找
li.IndexOf("list2");
//list排序
li.Sort();
foreach (string item in li)
{
Console.WriteLine(item);
} }
}
}

拓展:软件设计大赛题目

文字祖玛游戏,需求如下:

1).程序通过控制台输出一个字符串,由A、B、C、D、E五个字母组成,例如:ACBEEBBAD。

2).用户输入一个字符,只能是A、B、C、D、E其中之一,然后再输入一个要插入的位置。

3).程序会将这个字符插入到字符串的指定位置前(第一个字符位置为0,第二个字符位置为1,依此类推),然后消除连续出现的三个相同的字符,直到没有连续三个相同的字符为止。

例如:

控制台输出:ACBEEBBAD

用户输入:E, 3

控制台输出:ACAD

以上示例表示:在位置3插入E后,结果是:ACBEEEBBAD,消除连续的三个E,结果是:ACBBBAD再次消除连续三个B,结果是:ACAD。

要求如下:

A.为实现此游戏,需要设计一个方法DealString()

/**

* 参数:

* str: 原始字符串

* index: 要插入字符的位置

* letter: 要插入的字符

* 返回结果: 经过处理后的字符串

**/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace test3
{ class Program
{
static void Main(string[] args)
{
//1).程序通过控制台输出一个字符串,由A、B、C、D、E五个字母组成,例如:ACBEEBBAD。
Console.WriteLine("请输入一串字符串(ABCDE):");
string str = Convert.ToString(Console.ReadLine());
//2).用户输入一个字符,只能是A、B、C、D、E其中之一,然后再输入一个要插入的位置。
Console.WriteLine("请输入一个字符(ABCDE):");
string ch = Convert.ToString(Console.ReadLine());
Console.WriteLine("请输入要插入的位置:");
int pos = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(str);
str=str.Insert(,ch);
Console.WriteLine(str);
//3).程序会将这个字符插入到字符串的指定位置前(第一个字符位置为0,第二个字符位置为1,依此类推),然后消除连续出现的三个相同的字符,直到没有连续三个相同的字符为止。
for (int i = ; i < str.Length-; i++)
{
if (str[i] == str[i + ] && str[i + ] == str[i + ])
{
str=str.Remove(i,);
str=str.Remove(i,);
str=str.Remove(i,);
}
}
Console.WriteLine(str);
//例如:
//控制台输出:ACBEEBBAD
//用户输入:E, 3
//控制台输出:ACAD
//以上示例表示:在位置3插入E后,结果是:ACBEEEBBAD,消除连续的三个E,结果是:ACBBBAD再次消除连续三个B,结果是:ACAD。
//要求如下:
//A.为实现此游戏,需要设计一个方法DealString()
/**
* 参数:
* str: 原始字符串
* index: 要插入字符的位置
* letter: 要插入的字符
* 返回结果: 经过处理后的字符串
**/ } }
}

11 属性和索引器

上机练习题

1、编写代码实现需求:

编写一个类Student,代表学员,要求:

(1)具有属性:姓名、年龄,其中年龄不能小于16岁,否则输出错误信息

(2)具有方法:自我介绍,负责输出该学员的姓名、年龄

2. 编写一个类Student1,代表学员,要求:

(1)具有属性:姓名、年龄、性别、专业

(2)具有方法:自我介绍,负责输出该学员的姓名、年龄、性别、以及专业

(3)具有两个带参构造方法:第一个构造方法中,设置学员的性别为男、专业为计算机,其余属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定

(4)编写测试类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace test3
{
//编写一个类Student,代表学员,要求:
//(1)具有属性:姓名、年龄,其中年龄不能小于16岁,否则输出错误信息
//(2)具有方法:自我介绍,负责输出该学员的姓名、年龄
class student
{
string name; public string Name
{
get { return name; }
set { name = value; }
}
int age; public int Age
{
get { return age; }
set {
if (value >= )
{
age = value;
}
else
{ Console.WriteLine("error");
}
}
}
public void intro()
{
Console.WriteLine("姓名:"+name);
Console.WriteLine("年龄:"+age); }
public student(string name, int age)
{
this.age = age;
this.name = name;
} }
//2. 编写一个类Student1,代表学员,要求:
// (1)具有属性:姓名、年龄、性别、专业
//(2)具有方法:自我介绍,负责输出该学员的姓名、年龄、性别、以及专业
class student1
{
string name; public string Name
{
get { return name; }
set { name = value; }
}
int age; public int Age
{
get { return age; }
set { age = value; }
}
string sex; public string Sex
{
get { return sex; }
set { sex = value; }
}
string zhuanye; public string Zhuanye
{
get { return zhuanye; }
set { zhuanye = value; }
}
public void intro()
{
Console.WriteLine("我的姓名是:"+name);
Console.WriteLine("我的年龄是:"+age);
Console.WriteLine("我得性别是:"+sex);
Console.WriteLine("我的专业是:"+zhuanye); }
public student1(string name,int age,string sex,string zhuanye)
{
this.name=name;
this.age=age;
this.sex=sex;
this.zhuanye=zhuanye; }
public student1(string name, int age)
{
this.name = name;
this.age = age;
this.sex = "nan";
this.zhuanye = "it"; } }
//(4)编写测试类
//(3)具有两个带参构造方法:第一个构造方法中,
// 设置学员的性别为男、专业为计算机,其余属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定
class Program
{
static void Main(string[] args)
{
student stu1 = new student("name2",);
student1 stu2 = new student1("name3",,"nv","it");
student1 stu3 = new student1("name4",);
stu1.intro();
Console.WriteLine();
stu2.intro();
Console.WriteLine();
stu3.intro(); } }
}

3、属性和索引练习

(1) 定义一个Student类,其包含属性:SId(学号), Name(姓名),Score(总分),并重载其构造方法,初始化其属性。

(2) 定义一个班级类ClassDemo,其包含属性Count(学生人数,只读),List<Student>(学生列表);定义其索引器,按照序号获得学生对象,按照学号和姓名获得学生对象(索引重载)。

(3) 编写测试类,创建4个学生对象:

学号

姓名

总分

1

张三

375

2

李四

400

3

王五

425

4

薛六

498

  1. 将以上学生添加到班级,输出班级人数,并遍历班级学生的信息;
  2. 使用索引器查找学号是2,姓名是“李四”的总分,并输出到控制台。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace test3
{
class student
{
string sid; public string Sid
{
get { return sid; }
set { sid = value; }
} string name; public string Name
{
get { return name; }
set { name = value; }
}
int score; public int Score
{
get { return score; }
set { score = value; }
}
public student(string sid, string name, int score)
{
this.sid = sid;
this.name = name;
this.score = score;
}
} class ClassDemo
{
int count; public int Count
{
get
{
count = stu.Count;
return count;
}
set { count = value; }
}
List<student> stu; internal List<student> Stu
{
get { return stu; }
set { stu = value; }
}
//定义其索引器,按照学号和姓名获得学生对象(索引重载)。
public student this[int index]
{
get
{
if (index > && index < stu.Count)
{
return stu[index];
}
else
{
return null;
}
}
set
{
if (index >= && index < stu.Count)
{
stu[index] = value;
}
}
} public student this[string sid]
{
get
{
for (int i = ; i < stu.Count; i++)
{
if (stu[i].Sid == sid)
{
return stu[i];
}
}
return null;
}
set
{
for (int i = ; i < stu.Count; i++)
{
if (stu[i].Sid == sid)
{
stu[i] = value;
}
}
}
}
public student this[string sid, string name]
{
get
{
foreach (student item in stu)
{
if (item.Sid == sid && item.Name == name)
{
return item;
}
}
return null;
}
set
{
for (int i = ; i < stu.Count; i++)
{
if (stu[i].Name == name && stu[i].Sid == sid)
{
stu[i] = value;
}
}
}
}
public ClassDemo(int count)
{
this.count = count;
stu = new List<student>(count);
}
} class Program
{
static void Main(string[] args)
{
//(3) 编写测试类,创建4个学生对象:
student stu1 = new student("", "name1", );
student stu2 = new student("", "name2 ", );
student stu3 = new student("", "name3", );
student stu4 = new student("", "name4", );
//将以上学生添加到班级,输出班级人数,并遍历班级学生的信息;
ClassDemo cd = new ClassDemo();
cd.Stu.Add(stu2);
cd.Stu.Add(stu2);
Console.WriteLine();
cd.Stu.Add(stu3);
cd.Stu.Add(stu4);
foreach (student item in cd.Stu)
{
Console.Write(item.Name + " ");
}
Console.WriteLine();
cd[] = stu2;
cd[] = stu2;
cd[] = stu2;
cd[] = stu4;
foreach (student item in cd.Stu)
{
Console.Write(item.Name + "* ");
}
Console.WriteLine();
Console.WriteLine(cd.Count);
//使用索引器查找学号是004,姓名是“name4”的总分,并输出到控制台。
Console.WriteLine(cd["", "name4"].Score);
} }
}

13.抽象类和接口

上机练习题

1、定义一个Shape类,该类有名为Color的String类型的数据成员,还有一个名为GetColor方法(用于获取图形的颜色),另外还有一个名为GetArea的抽象方法。在Shape类的基础上定义其子类Circle,子类有半径R数据成员,并提供对GetArea方法的实现。以计算相应图形的面积。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace test3
{
//1、定义一个Shape类,该类有名为Color的String类型的数据成员,
class shape
{
string color;
public string Color
{
get { return color; }
set { color = value; }
}
//还有一个名为GetColor方法(用于获取图形的颜色),
public string Getcolor()
{
return color;
}
//另外还有一个名为GetArea的抽象方法。
public virtual double GetArea()
{
return 0.0;
}
public shape(string color)
{
this.color = color;
}
}
//在Shape类的基础上定义其子类Circle,
//子类有半径R数据成员,并提供对GetArea方法的实现。
//以计算相应图形的面积。
class Circle:shape
{
int r;
public override double GetArea()
{
return r * Math.PI * Math.PI;
}
public Circle(string color,int r):base(color)
{
this.r=r;
}
} class Program
{
static void Main(string[] args)
{
shape sh = new Circle("red",);
Console.WriteLine("该圆的面积为"+sh.GetArea());
Console.WriteLine("该圆的颜色是:"+sh.Getcolor());
}
}
}

2、定义如下接口,任何类使用该接口都可产生一系列数字。

public interface IDataSeries
{
int GetNext(); //返回下一个系列数字
void Reset(); //重新开始
void SetInit(int i); //设置系列数字的开始值
}

创建一个类FiveSeries,实现上述接口,用于产生一个公差为5的的数列。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace test3
{
public interface IDataSeries
{
int GetNext(); //返回下一个系列数字
void Reset(); //重新开始
void SetInit(int i); //设置系列数字的开始值
}
public class get
{
int num;
int temp;
public int GetNext()
{
num = num + ;
return num;
}
public void Reset()
{
this.num = temp;
}
public void SetInit(int i)
{
this.num = i-;
this.temp = i;
} }
class Program
{
static void Main(string[] args)
{
get get = new get();
get.SetInit();
for (int i = ; i < ; i++)
{
Console.WriteLine(get.GetNext());
}
} }
}

15.文件操作

上机练习题

创建一个控制台程序,功能要求:

1、创建一个名为Letter的文本文件;

2、把A-Z的26个英文字母保存到上述文件中;

3、把Letter文件中的内容读取到程序中;

4、把Letter文件名修改为New-Letter;

5、拷贝New-Letter文件到Copy-Letter;

6、删除New-Letter和Copy-Letter文件。

c#作业题的更多相关文章

  1. nyoj201 作业题

    作业题 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 3   描述 小白同学这学期有一门课程叫做<数值计算方法>,这是一门有效使用数字计算机求数学问题近似解的方 ...

  2. NYOJ201作业题

    作业题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 小白同学这学期有一门课程叫做<数值计算方法>,这是一门有效使用数字计算机求数学问题近似解的方法与过程, ...

  3. [ python ] 字符串的操作及作业题

    字符串的操作方法 capitalize() : 首字母大写 s1 = 'my heart will go on' print(s1.capitalize()) # 首字母大写 # 执行结果: # My ...

  4. nyoj 作业题 dp

    作业题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 小白同学这学期有一门课程叫做<数值计算方法>,这是一门有效使用数字计算机求数学问题近似解的方法与过程, ...

  5. NYOJ 201 作业题

    作业题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 小白同学这学期有一门课程叫做<数值计算方法>,这是一门有效使用数字计算机求数学问题近似解的方法与过 ...

  6. 作业题:闰年 if((year%4==0&&year%100!=0)||year&400==0)

    作业题:闰年 if((year%4==0&&year%100!=0)||year&400==0)

  7. python27期day14:有参装饰器、多个装饰器装饰一个函数、递归、作业题

    1.有参装饰器:给装饰器添加一个参数.来控制装饰器的行为. @auth(参数) auth里层的函数名 = auth(参数) 被装饰的函数名 = auth里层的函数名(被装饰的函数名) 被装饰的函数名( ...

  8. python27期day13:闭包、装饰器初始、标准版装饰器、作业题

    1.闭包: 保护数据安全.保护数据干净性. 2.闭包的定义:在嵌套函数内.使用非全局变量(且不使用本层变量) 将嵌套函数返回 闭包的目的:要接受被装饰的函数和被装饰函数需要的参数3.闭包举例子: de ...

  9. python27期day12:推导式、内置函数、高阶函数、匿名函数、作业题

    1.推导式:做一些有规律的数据结构 列表推导式: 普通循环模式: [加工后的变量 for 循环] 示例一:print([i for i in range(1,51)]) 结果:[1, 2, 3, 4, ...

  10. python27期day11:f-strings格式化、迭代器、生成器、作业题。

    1.建议小写f: name = "宝元"age = 18sex = "男"msg = F"姓名:{name},性别:{age},年龄:{sex}&qu ...

随机推荐

  1. jwt手动生成access_token

    from rest_framework_jwt.settings import api_settings # 手动为用户生成tokenjwt_payload_handler = api_setting ...

  2. 孤荷凌寒自学python第三十天python的datetime.datetime模块

     孤荷凌寒自学python第三十天python的datetime.datetime模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.datetime模块包含了:datet ...

  3. (原) Unreal创建自定义MeshCompoent

    @author:白袍小道 随缘查看 前言: 绘制相关类 MeshCompoent 模型组件 FVertexBuffer 顶点缓冲区封装 FIndexBuffer 顶点索引缓冲区封装 FRHIResou ...

  4. 【视觉SLAM14讲】ch4心得与课后题答案【仅供参考】

    答案: Q1:验证SO(3) SE(3) Sim(3)关于乘法成群 SO(3) : 由P64最开始可知,乘法代表了旋转,而SO(3)是旋转矩阵的集合, SE(3)  Sim(3)  同理(最基础的部分 ...

  5. [错误解决]pandas DataFrame中经常出现SettingWithCopyWarning

    先从原dataframe取出一个子dataframe,然后再对其中的元素赋值,例如 s = d[d['col_1'] == 0] s.loc[:, 'col_2'] = 1 就会出现报错: Setti ...

  6. JSP/Servlet Web 学习笔记 DayFive

    ServletConfig <只对当前Servlet有效> (1)在Web容器初始化Servlet实例时,都会为这个Servlet准备一个唯一的ServletConfig实例(俗称Serv ...

  7. HttpWebRequest调用WebService后台需要Session信息问题的解决办法

    今天在用HttpWebRequest调用后台ASP.NET 的WebService方法时遇到了一个问题,后台的WebService方法里使用到了Session对象中的用户信息,而Session对象中的 ...

  8. 【bzoj4562】[Haoi2016]食物链 拓扑排序+dp

    原文地址:http://www.cnblogs.com/GXZlegend/p/6832118.html 题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题 现在给你n个物种和m条能量流动 ...

  9. easyui中tab页中js脚本无法加载的问题及解决方法

    我发现tab页中<script src="xxx.js">方式加载的脚本没有生效,firebug看请求也没有请求相应的脚本文件. 单独在浏览器中打开tab页中的页面js ...

  10. 动态规划DP的斜率优化 个人浅解 附HDU 3669 Cross the Wall

    首先要感谢叉姐的指导Orz 这一类问题的DP方程都有如下形式 dp[i] = w(i) + max/min(a(i)*b(j) + c(j)) ( 0 <= j < i ) 其中,b, c ...