num

二分法,匿名函数

隐身守侯 提交于 2020-04-04 17:19:08
目录 二分法的应用 匿名函数 内置函数 面向过程编程 注册功能 分层实现功能 函数阶段性练习 二分法的应用 有一个从小到大排列的整形数字列表,我们判断某一个数字是不是在这个列表里面。 动用二分法查找数字 import time def rec_find_num(num, lis): """递归版本""" lis_len = int(len(lis) / 2) # 10.0 binary_num = lis[lis_len] # 10 if len(lis) == 1: print('没找到') return if binary_num > num: lis = lis[:lis_len] rec_find_num(num, lis) elif binary_num < num: # 10 < 18 lis = lis[lis_len + 1:] rec_find_num(num, lis) else: print('找到了') lis = [i for i in range(100000000)] # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] start = time.time() rec_find_num(4567899900, lis) end = time.time()

zoj 2859 Matrix Searching

久未见 提交于 2020-04-04 10:48:28
二维线段树题,求矩阵内的子矩阵中最小的值 View Code 1 #include <cstdio> 2 #include <algorithm> 3 using namespace std; 4 #define lson l,m,rt<<1 5 #define rson m+1,r,rt<<1|1 6 #define maxn 301 7 int a[maxn][maxn]; 8 int setree[maxn<<2][maxn<<2]; 9 int n; 10 void build1(int num1,int num2,int l,int r,int rt) 11 { 12 if(l==r){ 13 setree[rt][num1]=a[l][num2]; 14 return; 15 } 16 int m=(l+r)>>1; 17 build1(num1,num2,lson); 18 build1(num1,num2,rson); 19 setree[rt][num1]=min(setree[rt<<1][num1],setree[rt<<1|1][num1]); 20 } 21 void build2(int num,int l,int r,int rt) 22 { 23 setree[rt][num]=min(setree[rt][num<<1],setree[rt]

MySQL 表的增删改查操作

偶尔善良 提交于 2020-04-04 09:32:03
表结构修改操作 在book表里添加一个字段; 格式:alter table 表名 add 字段名称 字段类型; mysql> alter table book add count int; Query OK, 0 rows affected (0.42 sec) Records: 0 Duplicates: 0 Warnings: 0   查看表结构 mysql> desc book; #简写 +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | num | int(11) | YES | | NULL | | | name | varchar(10) | YES | | NULL | | | datel | date | YES | | NULL | | | price | double(5,2) | YES | | NULL | | | count | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 5

const函数

谁说我不能喝 提交于 2020-04-04 08:23:50
const的函数不能对其数据成员进行修改操作。 const的对象,不能引用非const的成员函数。 // test1107.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; class aa{ int num; public: aa(){ int b =10; num = b; }; void out1(){ cout<<num<<endl; } void out2() const{ cout<<num<<endl; } void out3() const{ num+=10; //出错,const函数不能修改其数据成员 cout<<num<<endl; } }; int _tmain(int argc, _TCHAR* argv[]) { aa a1; a1.out1(); a1.out2(); a1.out3(); const aa a2; a2.out1(); // 错误,const的成员 不能访问非const的函数 a2.out2(); a2.out3(); return 0; } 来源: https://www.cnblogs.com/raichen/p/5551562.html

专题训练之强连通分量

北城余情 提交于 2020-04-04 04:23:18
tarjan模板 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 const int maxn=20010; 6 const int maxm=50010; 7 struct edge{ 8 int to,nxt; 9 }edge[maxm]; 10 int head[maxn],tot; 11 int low[maxn],dfn[maxn],stack[maxn],belong[maxn]; 12 int index,top; 13 int scc; 14 bool vis[maxn]; 15 int num[maxn]; 16 17 void addedge(int u,int v) 18 { 19 edge[tot].to=v; 20 edge[tot].nxt=head[u]; 21 head[u]=tot++; 22 } 23 24 void tarjan(int u) 25 { 26 int v; 27 low[u]=dfn[u]=++index; 28 stack[top++]=u; 29 vis[u]=true; 30 for ( int i=head[u];i!=-1;i=edge[i].nxt ) { 31 v=edge[i].to; 32

let引起的暂时性死区

こ雲淡風輕ζ 提交于 2020-04-04 04:14:00
let声明的变量适用于块级作用域,没有变量提升。 暂时性死区(temporal dead zone) let num = 10; if (true) { console.log(num); } 输出:10 let num = 10; if (true) { let num = 20; console.log(num); } 输出:20 let num = 10; if (true) { var num = 20; console.log(num); } 控制台会报语法错误,Uncaught SyntaxError: Identifier 'num' has already been declared,因为var会变量提升。 let num = 10; if (true) { console.log(num); let num = 20; } 报引用错误:Uncaught ReferenceError: Cannot access 'num' before initialization;在使用变量时,会先在本级作用域查找,没有再向上级作用域查找,那这里为什么会说没有初始化呢? 根据 segmentfault 上 Chen 的 博文 : 当程序的控制流程在新的作用域(module function 或 block 作用域)进行实例化时,在此作用域中用let

sql语句性能优化

社会主义新天地 提交于 2020-04-03 21:37:55
面试的时候被面试官问到sql语句的性能优化,回来百度才发现我了解的那些真的是凤毛麟角,废话不多说,上干货: 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。 3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。 4,应尽量避免在 where 子句中使用 or 来连接条件, 否则将导致引擎放弃使用索引而进行全表扫描, 可以 使用UNION合并查询: select id from t where num=10 union all select id from t where num=20 5,in 和 not in 也要慎用,否则会导致全表扫描,对于连续的数值,能用 between 就不要用 in 了:Select id from t where num between 1 and 3 6,下面的查询也将导致全表扫描:select id from t where name like ‘%abc%’ 或者select id from t

使用NHibernate 3.2实现Repository(ORuM)(九)LINQ

瘦欲@ 提交于 2020-04-03 14:54:28
Linq LINQ(Language Integrated Query,语言集成查询),发音 "link",是一组技术的名称。LINQ是 Visual Studio 2008 和 .NET Framework 3.5 版中引入的一项创新功能,它在对象领域和数据领域之间架起了一座桥梁。LINQ 将强大的查询功能扩展到 C# 和 Visual Basic 的语言语法中,并采用标准的、易于学习的查询模式。可以对此技术进行扩展以支持几乎任何类型的数据存储。 传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或 IntelliSense 支持。 此外,您还必须针对以下各种数据源学习一种不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等等。 LINQ 使查询成为 C# 和 Visual Basic 中的一流语言构造。 您可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询。 下图显示了一个用 C# 语言编写的、不完整的 LINQ 查询,该查询针对 SQL Server 数据库,并具有完全类型检查和 IntelliSense 支持。 在 Visual Studio 中,可以用 Visual Basic 或 C# 为以下数据源编写 LINQ 查询:SQL Server 数据库、XML 文档、ADO.NET 数据集,以及支持 IEnumerable 或泛型

电话传递数据加密

帅比萌擦擦* 提交于 2020-04-03 05:22:34
题目: 某个公司采用公用电话传递数据, 数据是四位的整数,在传递过程中是加密的,加密规则如下: 每位数字都加上5, 然后用和除以10的余数代替该数字, 再将第一位和第四位交换,第二位和第三位交换。 import java.util.*; public class Test{ public void jie(int num){ int a,b,c,d; a=num/1000; b=num/100-a*10; c=num/10-a*100-b*10; d=num%10; int[] s = {a,b,c,d}; int temp=0; temp=s[0]; s[0]=s[3]; s[3]=temp; temp=s[1]; s[1]=s[2]; s[2]=temp; for(int i=0;i<4;i++){ if(s[i]<4) s[i]=s[i]+10-5; else s[i]=s[i]-5; } System.out.print("\t\t\t解密过后的数字为: "); for(int i : s) System.out.print(i); } public void add(int num){ int a,b,c,d; a=num/1000; b=num/100-a*10; c=num/10-a*100-b*10; d=num%10; int[] s = {a,b,c,d};

金额小写转换为大写

ぐ巨炮叔叔 提交于 2020-04-03 04:18:52
/**/ /// <summary> /// 转换人民币大小金额 /// </summary> /// <param name="num"> 金额 </param> /// <returns> 返回大写形式 </returns> public static string CmycurD( decimal num) { string str1 = " 零壹贰叁肆伍陆柒捌玖 " ; // 0-9所对应的汉字 string str2 = " 万仟佰拾亿仟佰拾万仟佰拾元角分 " ; // 数字位所对应的汉字 string str3 = "" ; // 从原num值中取出的值 string str4 = "" ; // 数字的字符串形式 string str5 = "" ; // 人民币大写金额形式 int i; // 循环变量 int j; // num的值乘以100的字符串长度 string ch1 = "" ; // 数字的汉语读法 string ch2 = "" ; // 数字位的汉字读法 int nzero = 0 ; // 用来计算连续的零值是几个 int temp; // 从原num值中取出的值 num = Math.Round(Math.Abs(num), 2 ); // 将num取绝对值并四舍五入取2位小数 str4 = (( long )(num * 100 ))