
编程小技巧
文章平均质量分 68
糖人豆丁
这个作者很懒,什么都没留下…
展开
-
将正整数各位相加简化为个位数
Public static int simplify(int n) { String s; while (n>=10) { s=n+""; n=0; for (int i = 0; i < s.length(); i++) { n+=s.charAt(i)-'0';原创 2016-03-03 22:37:10 · 372 阅读 · 0 评论 -
快速排序(Python实现)
一、 算法介绍快速排序是经常考查到的排序算法,这里对快排算法做一下总结。快速排序是“交换”类的排序,它通过多次划分操作实现排序!以升序为例,其执行流程可以概括为:每一趟排序选择当前所有子序列的一个关键字(通常是第一个)作为枢轴量,将子序列中比枢轴量小的移到枢轴前边,比枢轴大的移到枢轴后边,具体过程是一个交替扫描和交换的过程。当本趟所有子序列都被枢轴以上述规则划分完毕后会得到新的一组更短的子序列,...原创 2019-03-16 14:47:41 · 24413 阅读 · 16 评论 -
使用位运算判断奇偶性
平时在做奇偶数判定时,往往采用对2取余看结果是0和1的方式来判断,但这种方法不仅慢,而且有局限性,因为奇偶数的定义是:整数中,能被2整除的数是偶数,不能被2整除的数是奇数整数不仅包括0和整数,而且也包括负整数,这种方式如果是根据取余结果来判断是否为0来判断偶数、奇数的话还是可以的,但是如果用1来判定的就糟了(因为负奇数对2取余结果为-1)。其实将整数用二进制表示后,可以很方便的进行奇偶性的...原创 2019-02-28 16:47:28 · 7544 阅读 · 3 评论 -
Python将输入的数字字符串转为数组的简便方式
在进行编程练习时,经常会遇到输入一串数字的情况,不像C语言和Java那样,可以直接对应输入,Python对应输入的都是字符串,这时就需要进行转换,这时就可以使用Python的map函数来实现这一功能了。# -*- coding: utf-8 -*-# 例如输入的line是:1 2 3 4# 对于字符串,先使用split方法按空格进行分割,结果为:['1', '2', '3', '4']...原创 2018-08-05 08:54:15 · 37979 阅读 · 1 评论 -
Python时间函数
在用Python编写程序时经常会遇到需要求解一个函数运行时间的情况,在做CS231n作业的时候,发现一个利用Python语言特性编写的比较巧妙的计算方法,这里记录和大家分享一下:def time_function(f, *args): """ Call a function f with args and return the time (in seconds) that ...原创 2018-06-21 15:03:20 · 926 阅读 · 0 评论 -
蓝桥杯——生物芯片
X博士正在研究一种生物芯片,其逻辑密集度、容量都远远高于普通的半导体芯片。博士在芯片中设计了 n 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮。这些光源的编号从 1 到 n,开始的时候所有光源都是关闭的。 博士计划在芯片上执行如下动作: 所有编号为2的倍数的光源操作一次,也就是把 2 4 6 8 … 等序号光源打开 所有编号为3的倍数的光源原创 2016-05-22 11:46:32 · 1398 阅读 · 2 评论 -
连号区间数
标题:连号区间数小明这些天一直在思考这样一个奇怪而有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式: 第一行是一原创 2016-03-14 20:46:42 · 637 阅读 · 0 评论 -
九宫重排
问题描述(oj) 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。 经过若干次移动,可以形成第二个图所示的局面。 我们把第一个图的局面记为:12345678. 把第二个图的局面记为:123.46758 显然是按从上到下,从左到右的顺序记录数字,空格记为句点。 本题目的任务是已知九宫的初态和终态,求最少经过多原创 2016-03-09 21:45:40 · 2170 阅读 · 0 评论 -
自守数
如果一个自然数的平方数的尾部仍然为该自然数本身,则称其为自守数。 例如: 5 x 5 = 25 76 x 76 = 5776 625 x 625 = 390625 下面代码的目的是寻找出2千万以内的所有自守数。 注意,2千万的平方已经超出了整数表达的最大范围,所以该程序使用了一个巧妙的方案。 如果我们仔细观察乘法的计算过程,就会发现实际上对乘积的尾数有贡献的转载 2016-03-08 17:17:47 · 857 阅读 · 0 评论 -
dp学习——最大字段和
输入第1行:整数序列的长度N(2 <= N <= 50000) 第2 - N + 1行:N个整数(-10^9 <= A[i] <= 10^9)输出输出最大子段和。输入示例6 -2 11 -4 13 -5 -2输出示例20 这道题也可以用二重循环、三重循环做,但用dp可以更有效的得到解,dp数组的含义:定义dp[i]为输入的以a[i]结尾的最大字段和。 状态转移方程为原创 2016-03-07 18:59:06 · 983 阅读 · 0 评论 -
Java中的goto
一、 Java中的goto关键字 在C/C++中,goto常被用于跳出多重循环。但goto 语句的使用往往会使程序的可读性降低,所以 Java 不允许 goto 跳转。实际上,自从“goto有害论”提出后,软件开发就不建议使用goto了,但是Java中依然保留了goto这个关键字留作备用,但这个关键字没有任何作用,...原创 2019-04-16 16:09:55 · 51429 阅读 · 6 评论