Fork me on GitHub
Weclome Back

Keithxodoy


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

未命名

发表于 2018-08-08 | 评论数:
MachineLearning.md—D:\HEXO\blog\source\_posts\机器学习&人工智能

机器学习

阅读全文 »

sass

发表于 2018-08-06 | 分类于 前端 | 评论数:

Sass (Syntactically Awesome StyleSheets)
Sass 是对 CSS 的扩展,让 CSS 语言更强大、优雅。

阅读全文 »

未命名

发表于 2018-07-29 | 评论数:
JavaScript.md—D:\HEXO\blog\source\_posts\前端

JavaScript : 描述HTML文档属性。JavaScript语句是发给浏览器的命令。这些命令的作用是告诉浏览器要做的事情

阅读全文 »

ES6入门

发表于 2018-07-28 | 分类于 前端 | 评论数:

前端之旅:ES6入门

阅读全文 »

数据结构

发表于 2018-07-26 | 更新于 2018-08-03 | 分类于 计算基础 | 评论数:

Hailstone序列

img

For computing the Hailstone sequence (a.k.a. 3n+1 problem), the Hailstone(n) program

Hailstone问题(又名3n+1问题)中Hailstone(n)

解决

img

解释:其中运用了三元运算符,(n % 2) == 1 则为True , (n % 2) == 0 则为False.

结论: 不能证明对于任意的n,序列都有穷;同时也不能找到一个反例


计算模型

DSA : Data Science + Algorithm 数据结构 + 算法

度量

成本: 运行时间 + 所需存储空间

观察

问题实例的规模,往往是决定计算成本的主要因素

通常规律

规模越近,计算成本也越近

规模度量值的定义

T(n) = max { T(P) | |P| = n }

C语言

发表于 2018-07-26 | 更新于 2018-08-08 | 分类于 C语言 | 评论数:
易错点
  • C语言输出需要使用双引号
  • switch 语句只会根据条件语句进行case、default的选择执行
  • continue只能用在循环体内

范例: 水仙花数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
int main()
{
//定义三位数num,个位数sd,十位数td,百位数hd
int num, sd, td, hd;
//循环所有三位数
for(num=100;num<1000;num++)
{
//获取三位数字num百位上的数字
hd =num/100;
//获取三位数字num十位上的数字
td =num%100/10;
//获取三位数字num个位上的数字
sd =num%10;
//水仙花数的条件是什么?
if(num==hd*hd*hd+td*td*td+sd*sd*sd)
{
printf("水仙花数字:%d\n", num);
}
}
return 0;
}

范例: 输出下图

img

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
int main()
{
int i, j, k;
for(i=1; i<5; i++)
{
/* 观察每行的空格数量,补全循环条件 */
for( j=i ; j<5 ; j++ )
{
printf(" "); //输出空格
}
/* 观察每行*号的数量,补全循环条件 */
for( k=0 ; k<2*i-1 ; k++ )
{
printf("*"); //每行输出的*号
}
printf("\n"); //每次循环换行
}
return 0;
}

每一行的*数目为: 2i-1


  • 范例:判断是否为闰年

判断闰年的标准是:能整除4且不能整除100 或者能整除400

switch 语句会根据 condition来选择case的条件执行,若喜欢能执行多个case,则把符合condition的case放置第一位,然后不要使用break语句,直到执行完最后一个希望执行的case,再添加break

实例:使用switch语句和if…else语句,计算2008年8月8日这一天,是该年中的第几天。

方案一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
int main()
{
int year = 2008;
int month = 8;
int day = 8;
int i,j;
if(year%100==0&&year%400==0||year%4==0&&year%100!=0)i=1;
else i=0;
switch(month)
{
case 1:j=day;break;
case 2:j=31+ day;break;
case 3:j=31+ 28+ day;break;
case 4:j=31+ 28+ 31+ day;break;
case 5:j=31+ 28+ 31+ 30+ day;break;
case 6:j=31+ 28+ 31+ 30+ 31+ day;break;
case 7:j=31+ 28+ 31+ 30+ 31+ 30+ day;break;
case 8:j=31+ 28+ 31+ 30+ 31+ 30+ 31+day;break;
case 9:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ day;break;
case 10:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+day;break;
case 11:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+ 31+day;break;
case 12:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+ 31+ 30+ day;break;
}
if(i==1)j+=1;
printf("%d年%d月%d日是该年的第%d天",year,month,day,j);
return 0;
}

方案二

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
/*
* 请使用swtich语句,if...else语句完成本题
* 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
* 小编还是希望大家独立完成哦~
*/
int date = 0;
switch (month)
{
case 12: date += 30;
case 11: date += 31;
case 10: date += 30;
case 9: date += 31;
case 8: date += 31;
case 7: date += 30;
case 6: date += 31;
case 5: date += 30;
case 4: date += 31;
case 3: if(year%400 != 0 && year%4 == 0){
date += 29;
}else{
date += 28;}
case 2: date += 31;
default: date += 8,printf("2008年8月8日是该年的第%d天",date);break;
}
return 0;
}

goto语句

goto语句是一种无条件分支语句,goto 语句的使用格式为:

goto 语句标号;

语句标号是一个标识符,该标识符一般用英文大写并遵守标识符命名规则,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。

示例:

img

goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在特定情况下,可以使用goto语句来提高程序的执行速度,所以还是少用为妙。


函数

自创函数

img

注意:自定义函数尽量放在main函数之前,如果要放在main函数后面的话,需要在main函数之前先声明自定义函数,声明格式为:[数据类型说明] 函数名称([参数]);

示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
/* 自定义整型函数 sayLove() */
int sayLove()
{
//在这里输入输出语句printf,输出内容为I Love imooc
printf("I Love imooc");
return 0;
}
/* 主函数 */
int main()
{
sayLove();
return 0;
}


#### 函数调用
语法:函数名([参数]);

[]中可以是常数,变量或其它构造类型数据及表达式,个参数之间用逗号分隔。

参数:形参与实参

形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量 在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹

函数返回值

return 表达式 或者为: return (表达式); 没有返回值的函数,返回类型为void

注意:void函数中可以有执行代码块,但是不能有返回值,另void函数中如果有return语句,该语句只能起到结束函数运行的功能。其格式为:return;

### 递归使用
一、 猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,问第一天共摘下来多少个桃子?并反向打印每天所剩桃子数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
/* 定义获取单词数量的函数 */
int getWordNumber(int n)
{
if(n == 1)
{
return 1; //第一天只会1个单词,即返回最后一天的数量
}
else{
return getWordNumber(n-1)+n ; //到第天会的单词数量
}
}
int main()
{
int num = getWordNumber(10); //获取会了的单词数量
printf("小明第10天记了:%d个单词。\n", num);
return 0;
}


二、有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第3个人,又说比第2人大两岁。问第2个人,说比第1个人大两岁。最后 问第1个人,他说是10岁。请问第5个人多大?

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h> 

int dfs(int n) {
return n == 1 ? 10 : dfs(n - 1) + 2; // 三则运算符
}
int main()
{

printf("第5个人的年龄是%d岁", dfs(5));
return 0;
}


## 局部与全局
### 初解
img

全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。

程序会优先寻找函数内部变量,如果没找到再在全局变量寻找。

1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
int x = 10;
if(x>0)
{
int x = 100;
x /= 2;
printf("if语句内, x=%d\n", x);
}
printf("main方法内, x=%d\n", x);
return 0;
}


输出:
1
2
if语句内, x=50
main方法内, x=10


### 变量存储类别
C语言根据变量的生存周期来划分,可以分为静态存储方式和动态存储方式

静态存储方式:

是指在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量,如全局变量。
动态存储方式:

是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建立和释放的,通常包括:函数形式参数;自动变量;函数调用时的现场保护和返回地址等。


存储类别又分为四类:

自动(auto) 静态(static)
* 寄存器的(register)和外部的(extern)


自动变量

用关键字auto定义的变量为自动变量,auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式.

img

静态变量static

用static修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量。

静态变量可以记忆变量的变化之后的值

示例如下:

img

img

外部变量extern

用extern声明的的变量是外部变量,外部变量的意义是某函数可以调用在该函数之后定义的变量

img

JavaScript

发表于 2018-07-26 | 更新于 2018-08-08 | 分类于 前端 | 评论数:

JavaScript : 描述HTML文档属性。JavaScript语句是发给浏览器的命令。这些命令的作用是告诉浏览器要做的事情

阅读全文 »

Python_Basic_Distinguish

发表于 2018-07-25 | 分类于 Python | 评论数:

当一个类实例被创建时,__init__()方法会自动执行
目的为执行一些对象的必要的初始化工作

阅读全文 »

Python_Basic

发表于 2018-07-25 | 分类于 Python | 评论数:

继续(换行分隔): \


Python解释器执行

1
2
3
4
5
#!/usr/bin/python  #第一行是特殊注释行,称之为组织行,用来告诉我们GUN/Linux系统应该使用哪个解释器来执行
#-*-coding:utf-8-*-
#FileName:
#Author:
#Date:

Python风格

==Pythonic==

阅读全文 »

JSON

发表于 2018-07-25 | 分类于 Data_struction | 评论数:

认识json

  • 1.全称:JavaScript Object Notation
    • 另称:轻量级的传输文件
阅读全文 »
12…5
Keithxodoy

Keithxodoy

The trouble with the world is that the stupid are sure and the intelligent are full of doubt.

48 日志
16 分类
27 标签
RSS
GitHub
© 2018 Keithxodoy
博客全站共76.0k字