num

SQL快速入门 ( MySQL快速入门, MySQL参考, MySQL快速回顾 )

﹥>﹥吖頭↗ 提交于 2020-02-29 10:11:22
SQL 先说点废话,很久没发文了,整理了下自己当时入门 SQL 的笔记,无论用于入门,回顾,参考查询,应该都是有一定价值的,可以按照目录各取所需。SQL数据库有很多,MySQL是一种,本文基本都是SQL通用标准,有些标准很不统一的地方就用MySQL的写法了。希望本文帮你快速了解SQL的基本操作和概念。 文章格式上有些问题,可以点击 这里 获得更加的阅读体验 目录 检索 过滤检索结果 数据汇总处理 分组 给检索结果排序 表操作 插入数据 更新删除数据 子查询-迭代查询 联结-关联多个表 组合查询 视图 其它 检索 检索某表中单个列: SELECT 列名 FROM 表名; 检索某表中多个列: SELECT 列名,列名,列名 FROM 表名; 检索某表中所有列:(尽量不用) SELECT * FROM 表名; 只检索某表中某列里不重复的项: SELECT DISTINCT 列名 (如果有两列或以上,需要这些列组合起来是不重复的) FROM 表名; 检索指定行数: SELECT 列名 FROM 表名 LIMIT 5 OFFSET n; (mySQL中,选第n行后的五行。 OFFSET n 可不填写默认为0,其它 SQL 数据库中有不同写法) 过滤检索结果 寻找指定行:(举例) SELECT prod_name, prod_price FROM Products WHERE prod

6 函数复习

旧城冷巷雨未停 提交于 2020-02-29 09:59:36
1 def sushu(lower,upper): 2 lei = [] 3 for num in range(lower,upper+1): 4 if num > 1: 5 for i in range(2,num): 6 if (num % i ) == 0: 7 break 8 else: 9 lei.append(num) 10 print('求的素数共计'+ str(len(lei)) +'个。\n','分别是:',lei) 11 while 1: 12 lower = int(input('输入区间最小值:')) 13 upper = int(input('输入区间最大值:')) 14 sushu(lower, upper) 15 print() 来源: https://www.cnblogs.com/reaix/p/12381522.html

16变量进阶(理解)

旧巷老猫 提交于 2020-02-29 09:58:07
01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变量 和 数据 是分开存储的 数据 保存在内存中的一个位置 变量 中保存着数据在内存中的地址 变量 中 记录数据的地址 ,就叫做 引用 使用 id() 函数可以查看变量中保存数据所在的 内存地址 注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用 变量 不再 对之前的数据引用 变量 改为 对新赋值的数据引用 1.2 变量引用 的示例 在 Python 中,变量的名字类似于 便签纸 贴在 数据 上 定义一个整数变量 a ,并且赋值为 1 代码 图示 a = 1 将变量 a 赋值为 2 代码 图示 a = 2 定义一个整数变量 b ,并且将变量 a 的值赋值给 b 代码 图示 b = a 变量 b 是第 2 个贴在数字 2 上的标签 1.3 函数的参数和返回值的传递 在 Python 中,函数的 实参 / 返回值 都是是靠 引用 来传递来的 def test ( num ) : print ( "-" * 50 ) print ( "%d 在函数内的内存地址是 %x" % ( num , id ( num ) ) ) result = 100 print ( "返回值 %d

全排列程序

限于喜欢 提交于 2020-02-29 09:41:51
排列:一些元素按某种顺序排成一列即为这些元素的一个排列。例如:由1,2,3,4,5组成一排列可以有12345,31254等。 全排列:一些元素的所有可能的排列。例如:由a,b,c三个字母的全排列为abc,acb,bac,bca,cab,cba六个排列 求全排列的问题可以用递归,也可以用非递归形式。 /*功能:根据输入字符串列全排列 说明1:所用字符为所有可见字符 说明2:区分大小写 说明3:所有字符不重复使用(输入字符串可以重复) 说明4:全排列按字符顺序升序排列*/ #include<iostream> #include<cstring> using namespace std; const int N=20; bool mak[N],m; int a[127],num[N],cnt,no,tmp; char f[N]; void pr() { cout<<++no<<':'; for(int k=1;k<=cnt;k++)cout<<f[num[k]]; cout<<endl; } int main() { ios::sync_with_stdio(0); int i; string s; cin>>s; for(i=0;i<s.length() ;i++)a[s[i]]=1; for(i=33;i<127;i++)if(a[i])f[++cnt]=i; for(i=1;i<

js-回文数

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-29 04:16:56
回文数 设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。 //回文数 let readline = require("readline-sync"); console.log("请输入数字:"); let num = parseInt(readline.question("")); let newNum = 0; for(temp=num;temp!=0;temp=parseInt(temp/10)){ newNum = newNum*10+temp%10; } newNum===num?console.log("是回文数"):console.log("不是回文数"); 来源: https://www.cnblogs.com/CccK-html/p/11381018.html

Javascript中递归的调用

青春壹個敷衍的年華 提交于 2020-02-29 03:32:20
  递归函数就是调用自身,如下所示: 1 function factorial(num){ 2 if(num<=1){ 3 return 1; 4 }else{ 5 return num*factorial(num-1); 6 } 7 }   这是经典的递归调用,但是执行如下代码时会导致出错。 1 var anotherFactorial=factorial; 2 factorial=null; 3 alert(anotherFactorial(3)); //Uncaught TypeError: factorial is not a function   上面的代码先把factorial()函数保存在anotherFactorial中,然后将factorial设置为null。结果指向原始函数的指针只剩下一个,在接下来的调用就会出现错误(factorial已经不是函数),此时使用 arguments.callee (即指向正在执行函数的指针)可以解决这个问题,即: 1 function factorial(num){ 2 if(num<=1){ 3 return 1; 4 }else{ 5 return num*aguments.callee(num-1); 6 } 7 }   但是在严格模式下,不能通过脚本访问aguments.callee。最好的解决方法是使用 命名函数表达式

练习11

老子叫甜甜 提交于 2020-02-29 01:48:52
1 1 //------------------------------------- 2 // EX1101.cpp 3 // 解方程 4 //------------------------------------- 5 #include"Root.h" 6 #include<iostream> 7 using namespace std; 8 //------------------------------------- 9 int main(){ 10 for(double a,b,c; cin>>a>>b>>c; ) 11 Root(a,b,c).solve(); 12 }//------------------------------------ View Code 1 //------------------------------------- 2 // Root.h 3 //------------------------------------- 4 #ifndef HEADER_ROOT 5 #define HEADER_ROOT 6 //------------------------------------- 7 class Root{ 8 double aa,bb,cc; 9 public: 10 Root(double a, double b,

线段树(一)

寵の児 提交于 2020-02-28 23:31:43
题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上 k 。 求出某区间每一个数的和。 输入格式 第一行包含两个整数 n, , m,分别表示该数列数字的个数和操作的总个数。 第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。 接下来 m 行每行包含 3 或 4 个整数,表示一个操作,具体如下: 1 x y k :将区间 [x, y] 内每个数加上 k 。 2 x y :输出区间 [x, y] 内每个数的和。 输出格式 输出包含若干行整数,即为所有操作 2 的结果。 in: 5 5 1 5 4 2 3 2 2 4 1 2 3 2 2 3 4 1 1 5 1 2 1 4 out: 11 8 20 类似于树状数组,对数据操作有nlogn的性能 #include<bits/stdc++.h> #define N 1000010 using namespace std; struct node { int l,r; long long data; long long lazy; }tree[N<<1]; int a[N],n,m; void bulid(int num,int l,int r) { tree[num].l=l; tree[num].r=r; if(l==r) { tree[num].lazy=a[l]; return;

Tree and Queries CodeForces - 375D

别来无恙 提交于 2020-02-28 23:31:24
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int maxn = 1e6; int col[maxn]; int num[maxn]; int vis[maxn]; int idx,h[maxn],e[maxn],ne[maxn]; int tl[maxn],tr[maxn]; struct query{ int l,r,id,k; }a[maxn]; void add(int a,int b){ e[idx]=b; ne[idx]=h[a]; h[a]=idx++; } void dfs(int u,int fa){ //子树对应的dfs序的左区间 tl[u]=++idx; num[idx]=col[u]; for(int i=h[u];~i;i=ne[i]){ if(e[i]!=fa) dfs(e[i],u); } //子树对应的dfs序的右区间 tr[u]=idx; } int sz; bool cmp(query a,query b){ if(a.l/sz!=b.l/sz) return a.l<b.l; return a.r<b.r; } int lowbit(int x){ return x&-x; }

快速排序详解

混江龙づ霸主 提交于 2020-02-28 23:20:55
/* * @Author: hzf * @Date: 2020-02-28 20:52:55 * @Last Modified by: hzf * @Last Modified time: 2020-02-28 21:46:53 */ /* 原理: 问题一: 将一系列数字进行处理,使得大于num的数字在数组左边,小于num的数字位于数组右边 解决方法: 将数组划分为左边,右边两部分, 指针p指向左边的右边界,指针q指向数组的右边的左边界 从数组的L[n]的0位置开始比较 如果L[i]<num 则Swap(L, i++, ++p),即交换当前数字与p指针指向的下一个数字,p指针右移 如果L[i]>num,则i++即可 即将小数字交换到左边 问题二: 将一系列数字进行处理,使得大于num的数字在数组左边,小于num的数字位于数组右边,等于num的数字位于数组中间 将数组划分为左边,右边两部分, 指针p指向左边的右边界,指针q指向数组的右边的左边界 从数组的L[n]的0位置开始比较 如果L[i]<num 则Swap(L, i++, ++p),即交换当前数字与p指针指向的下一个数字,p指针右移 如果L[i]==num,则i++ 如果L[i]>num,则Swap(L, i, --q) */ #include<iostream> #include<math.h> using