ubuntu 14 . 04 系统修改ssh端口
1 . 编辑 /etc/ssh/sshd_config 文件,找到Port 22 一栏,修改22为你想要的端口
2. 使用下面这句 将新的端口加入允许列表,不然你登出后将无法登陆回来 ,xxxx替换成端口号
ufw allow xxxx/tcp
3. 重启 ssh服务,service ssh restart 或者 /etc/init.d/ssh restart 即可
1 . 编辑 /etc/ssh/sshd_config 文件,找到Port 22 一栏,修改22为你想要的端口
2. 使用下面这句 将新的端口加入允许列表,不然你登出后将无法登陆回来 ,xxxx替换成端口号
ufw allow xxxx/tcp
3. 重启 ssh服务,service ssh restart 或者 /etc/init.d/ssh restart 即可
(把设置777权限的wordpress文件夹修改回来!)
wordpress升级时如果出现问题,比如说提示update-core.php 权限不足
然后设置权限后又蹦出一堆,
我们使用这两句命令来提升他们的权限( 还有其他两个文件也要设置下, 根据提示设置为777 ), 从而完成升级
( 还有其他两个文件也要设置下, 根据提示设置为777 ), 从而完成升级
chmod -R 777 wp-admin
chmod -R 777 wp-includes但是升级过后,不禁思考到,如果都是777权限会不会不安全呢,于是兰兰想在stack overflow 上找到了答案,使用以下两句来修正文件夹和文件的权限(ubuntu系统已测试很完美!)
运行这两句前,要先cd到wordpress的根目录!
find . -type d -exec chmod 755 {} \; # Change directory permissions rwxr-xr-x
find . -type f -exec chmod 644 {} \; # Change file permissions rw-r--r--这两句让文件夹设置为755权限,让文件变为644权限(只需要输入#号前的)
水仙花数,n位数字,假设n为3,数字为153,
那么1的3次方,加上5的三次方,加上3的三次方等于153,则称153为水仙花数。
我们需要写出,输入n,输出其位数的所有水仙花数。
代码在运行的时候比较慢,需要多等一会儿,
代码实现:
n位数的水仙花数,假设n为3,则水仙花数的范围是100到1000,
在这个范围内,判定一个数,假设判定100,分割100,为,1,0,0
然后分别计算分割出的字符串的n次幂(1的3次方,0的3次方,0的3次方),
然后相加,对比是否等于原数字,
如果是原数字,则为水仙花数,加入结果数组
最后打印出结果数组
最后!让代码说话!
import java.util.ArrayList;
import java.util.Scanner;
/**
* @Author: LanHao
* @Website:https://lanhaoo.club/
* @Created_Date:8:15 PM_5/23/2019
* @Magic_Power_Of_Code!
*/
public class water_flower {
public static void main (String[] args){
Scanner scanner=new Scanner(System.in);
String n=scanner.nextLine();
int new_n=Integer.valueOf(n);
//todo 判断是否为数字
String range_left="1";
String range_right="1";
String[] a;
ArrayList result1=new ArrayList();
for (int i = 0; i<new_n-1;i++){
range_left=range_left+"0";
}
for (int i = 0; i<new_n;i++){
range_right=range_right+"0";
}
int new_range_l=Integer.valueOf(range_left);
int new_range_r=Integer.valueOf(range_right);
System.out.println(new_range_l);
System.out.println(new_range_r);
for(int ii=new_range_l;ii<new_range_r;ii++){
double final_answer=0;
String i=String.valueOf(ii);
a=i.split("");
for (int j=0;j<a.length;j++){
int cc=Integer.valueOf(a[j]);
final_answer=final_answer+Math.pow(cc,new_n);
}
if(final_answer==ii){
result1.add(ii);
}
}
System.out.println(result1);
}
}
/**
@param {number[]} nums
@param {number} target
@return {number[]}
*/
var twoSum = function(nums, target) {
for(var i=0;i<nums.length;i++){
for(var j=i+1;j<nums.length;j++){
if(nums[i]+nums[j]==target){
return [i,j];
}
}
}
};
nums=[1,2,3,4] target=6 应该返回的结果为[1,3]
j=i+1保证计算不会重复,返回下标正确
js的一款五子棋算法
这个五子棋算法是从一篇博客上看的,我解决了当五子棋下到两边时,数组越界的问题。
过程:当一方棋子下到棋盘上时,判断左右,上下,左上右下,左下右上 的本方棋子个数,当为5时游戏结束,一方胜出。
function draw_board(){
var tmp=document.getElementById('canvas1');
var canva=tmp.getContext('2d');
canva.clearRect(0,0,600,600);
for(var i=0;i<=15;i++){
canva.beginPath();
canva.fillText(i,30+i*30,15);
canva.moveTo(30+i*30,30);
canva.lineTo(30+i*30,480);
canva.stroke();
if(i!=0){
canva.fillText(i,0,30+i*30);
}
canva.moveTo(30,30+i*30);
canva.lineTo(480,30+i*30);
canva.closePath();
canva.stroke();
}
}
function start(){
var over=false;
var Chessboard=[];//-1 黑,0无,1白
var chess_num=0;
var nownow=0;
document.getElementById('canvas1').setAttribute("height","500px");
document.getElementById('canvas1').setAttribute("width","500px");
var tmp=document.getElementById('canvas1');
var canva=tmp.getContext('2d');
canva.fillStyle="#000";
for(var i=0;i<=15;i++){
canva.beginPath();
canva.fillText(i,30+i*30,15);
canva.moveTo(30+i*30,30);
canva.lineTo(30+i*30,480);
canva.stroke();
if(i!=0){
canva.fillText(i,0,30+i*30);
}
canva.moveTo(30,30+i*30);
canva.lineTo(480,30+i*30);
canva.closePath();
canva.stroke();
}
//初始化棋盘信息,将二维数组所有项全部初始化为0
for (var i = -1; i <= 16; i++) {
Chessboard[i]=[];
for (var j = -1; j <= 16; j++) {
Chessboard[i][j]=0;
}
}
var now_chess=true;
var drawChess=function(i,j){
canva.beginPath();
canva.arc(30+i*30,30+j*30,13,0,2*Math.PI,true);
canva.closePath();
if(now_chess){
canva.fillStyle="#000000";
}else{
canva.fillStyle="#fff";
}
canva.fill();
}
$('#canvas1').mousemove(function(e){
// 悬浮事件
});
tmp.onclick=function(e){
if(over){
window.alert("本轮游戏已经结束了,请刷新浏览器重新开始!");
}else{
var x=e.offsetX;
var y=e.offsetY;
console.log(x+" "+y);
var i=Math.floor(x/32);
var j=Math.floor(y/30);
if(Chessboard[i][j]===0){
if(i>=0&&j>=0&&i<=15&&j<=15){
drawChess(i,j);
chess_num++;
if(now_chess){ //黑子
Chessboard[i][j]=-1;
nownow=-1;
now_chess=false;//将下一步棋的颜色进行反转
}else{
Chessboard[i][j]=1;
nownow=1;
now_chess=true;//将下一步棋的颜色进行反转
}
console.log(nownow);
//遍历是否赢
if(chess_num>9){
var count1=0;
var count2=0;
var count3=0;
var count4=0;
console.log(chess_num);
//横向,参考博客 陶伟基
for(var cc=i;cc>=0;cc--){
if(Chessboard[cc][j]!=nownow){
break;
}
count1++;
}//左
for(var dd=i+1;dd<=15;dd++){
if(Chessboard[dd][j]!=nownow){
break;
}
count1++;
}//右
console.log("横向:"+count1);
for(var ee=j;ee>=0;ee--){
if(Chessboard[i][ee]!=nownow){
break;
}
count2++;
}//上
for(var ff=j+1;ff<=15;ff++){
if(Chessboard[i][ff]!=nownow){
break;
}
count2++;
}//下
console.log("竖向:"+count2);
for(var gg=i,hh=j;gg>=0,hh>=0;gg--,hh--){
if(Chessboard[gg][hh]!=nownow){
break;
}
count3++;
}//左上,todo 解决越界问题?
for(var jj=i+1,kk=j+1;jj<=15,kk<=15;jj++,kk++){
if(Chessboard[jj][kk]!=nownow){
break;
}
count3++;
}//右下
console.log("左上右下:"+count3);
for(var ll=i,mm=j;ll>=0,mm<=15;ll++,mm--){
if(Chessboard[ll][mm]!=nownow){
break;
}
count4++;
}
for(var nn=i-1,oo=j+1;nn<=15,oo>=0;nn--,oo++){
if(Chessboard[nn][oo]!=nownow){
break;
}
count4++;
}
console.log("右上左下:"+count4);
if(count1>=5||count2>=5||count3>=5||count4>=5){
if(nownow==-1){
window.alert("黑棋赢了");
}else if(nownow==1){
window.alert("白棋赢了");
}
over=true;
}
}
}
}
}
}
}
有的地方缩进可能有点问题。写的着急了。