关键词:
- 1.使用递归方式判断某个字串是否是回文
(1)设计思想:回文就是正着读和反着读都是一样的,要判断一个字符串是否回文,先要把字符串分解成每个字符,如果只有一个字符,可以简单的判定;当字符个数超过一个的时候,就要进行比较,第一个和最后一个比较,这里定义一个整数,用来记录,开头的加一,末尾的减一,比较两个字符串是否相同,这就是递归函数了;
(2)程序流程图:
(3)程序源代码:
import java.util.Scanner;
public class Huiwen
{
public static boolean haha(String str,int start,int end)
{
if(start==end)
{
return true;
}
else{
if(str.charAt(start)!=str.charAt(end))
{
return false;
}
if(str.charAt(start)==str.charAt(end))
{
return true;
}
return haha( str,start+1, end-1);
}
}
public static void main(String[] args)
{
// TODO 自动生成的方法存根
Scanner input= new Scanner(System.in);
String s;
s=input.next();
int start=0,end=s.length();
if( haha(s, 0, s.length()-1))
{
System.out.println("是");
}
else
System.out.println("不是");
}}
(4)验证截图:
- 2.汉诺塔问题
(1) 设计思想:
首先有三根柱子,可以认定为abc,要求是盘子必须是由上到下,由小到大串起来,并且每次移动只能移动一个盘子,而且是小盘子。要移动最下面的大盘子,就要先把上面的所有盘子移动;我们可以认为a为原柱,b为过渡柱,c为目标柱;如果只有一个盘子,可以直接从原柱移动到目标柱;如果有两个盘子,就要先移动小盘子,先将小盘子移动到b柱子,然后将大盘子移动到c柱子,然后将小盘子移动到c柱子,当有三个及以上的盘子的时候,可以由大到小定义为1234....因为最大的必须要在c的最下面,要把上面所有盘子先移到b,然后把最后一个盘子移动到c,然后把b柱子上的盘子再移动到c,此时原柱子就变为b,而a就变为过渡柱子,c就是目标柱子;这里要设置两个参数,一个函数用来移动当前最大的盘子,直接从a到c,并且输出从哪移动到哪儿;第二个函数要有四个参数,一个整型,用来传递盘子个数,三个char类型,用来传递柱子的名字;首先判断是否为n,也就是盘子的数量,是否为一。
(2)程序流程图:
(3)程序代码:
import java.util.Scanner;
public class Hannuota {
public static void six(char q, char w)
{
System.out.println(q+"----->"+w);//????????????输出传递的参数
}
public static void niu(int n,char a,char b,char c)
{
if(n==1)
{
six(a,c);
}
else
{
niu( n-1, a, c, b);
six(a,c);
niu( n-1, b, a, c);
}
}
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int num;
System.out.println("请输入要移动盘子的数量");
num=input.nextInt();
niu( num,'A', 'B','C');
}
}
(4)验证截图:
- 1使用n的阶乘计算组合数
(1)设计思想:主要就是求n的阶乘,然后再根据公式看看需要几个变量,对变量进行赋值。
(2)程序代码:
import java.util.Scanner;
public class Cnjisuan {
public static int fact (int n)
{
if (n==1)
{
return 1;
}
else
{
return n*fact(n-1);
}
}
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
int n,k,a,b,c,d;
System.out.println("请输入n和k的值:");
n=input.nextInt();
k=input.nextInt();
a=fact(n);
b=fact(k);
c=fact(n-k);
d=a/(b*c);
System.out.println("最后的结果是:"+d);
}
}
(3)验证截图:
3.2.使用递推的方法用杨辉三角计算:
(1)设计思想:也是求阶乘,例如,求5的阶乘,要先算1*2,然后把1*2的结果再乘以3;然后再把1*2*3的结果乘以4,每次×的数字都比上一次×的数字大一,这里可以用一个for循环,用I从1开始记录;设置一个变量,保存上一次相乘得到的结果,然后再用这个变量乘以i,此时的i会比上一次的i大一。这个程序主要是利用递推法求阶乘,其余的算法和上面一个相同。
(2)程序代码:
import java.util.Scanner;
public class Ditui {
public static int fact (int n)
{ int a,b,c=1;
for(int i=1;i<=n;i++)
{
b=i;
a=b;
c=c*b;
}
return c;
}
public static void main(String[] args)
{
// TODO 自动生成的方法存根
Scanner input= new Scanner(System.in);
int a,b;
System.out.println("你要求几的阶乘");
a= input.nextInt();
b=fact(a);
System.out.println(b);
}
(3)验证截图:
如何在 macOS 10.14 上检测暗模式?
】如何在macOS10.14上检测暗模式?【英文标题】:HowcandarkmodebedetectedonmacOS10.14?【发布时间】:2019-01-1107:37:20【问题描述】:在macOS10.14中,用户可以选择采用系统范围的浅色或深色外观,我需要根据当前模式手动调整一些颜色。【... 查看详情
如何在 mac os 10.14 上安装 vcremote?
】如何在macos10.14上安装vcremote?【英文标题】:Howtoinstallvcremoteonmacos10.14?【发布时间】:2018-12-2900:34:47【问题描述】:我已在MacOSMojave10.14上进行了更新,并想在其上安装vcremote。我运行的命令是sudonpminstall-g--unsafe-permvcremote取自ht... 查看详情
动手动脑10.14
一、 publicclassSuiji publiclonga=12345L; publiclongc=12345L; publiclongm=456123L; publiclongr=1; publiclongrand() r=(r*a+c)%m; returnr; publicstaticvoidmain(String[]args) Suijis=newSuiji() 查看详情
数据库建表练习(10.14)
在 macOS Movaje 10.14 中安装 Homebrew + nginx + rtmp
】在macOSMovaje10.14中安装Homebrew+nginx+rtmp【英文标题】:InstallingHomebrew+nginx+rtmpinmacOSMovaje10.14【发布时间】:2020-05-2109:09:23【问题描述】:我能够在macOSHighSierra10.13中安装Homebrew+nginx+rtmp。现在我想在macOSMojave10.14上做同样的事情。那... 查看详情
无法在 macOS Mojave 10.14 中安装 Spring Roo 2
】无法在macOSMojave10.14中安装SpringRoo2【英文标题】:ImpossibletoinstallSpringRoo2inmacOSMojave10.14【发布时间】:2019-06-1504:34:59【问题描述】:我试图在STSIDE中的macOSMojave10.14(Java11)中安装SpringRoo2.0.0.RELEASE,但没有成功。在STS(3.9.7.RELEASE)中... 查看详情
我无法使用 Mojave 10.14 安装 gcc
】我无法使用Mojave10.14安装gcc【英文标题】:Ican\'tinstallgccwithMojave10.14【发布时间】:2018-11-0215:45:31【问题描述】:由于该命令,我尝试在我的Mojave系统上安装fortran编译器brew安装gcc很遗憾,我收到了这个错误信息应该包含系统头... 查看详情
10.14环境搭建
阿帕奇:服务器管理软件phpmysql数据库 密码修改:usemysql; (此处代码是在下边代码不行的时候加上的,加完敲回车执行)updatemysql.usersetpassword=PASSWORD(159357)whereuser=‘root‘; mysql用户名:rootmysql密码:自己修改mysql服务器... 查看详情
10.14
考试炸的飞起T1裸的快速幂,看出来快速幂还不会打,硬是推了俩小时T2stl可水,然而我为了推T1==T3很强的DP,代码都没有写只因为==(还是同样的理由QAQ)所以连炸两天的我还有救吗AtCoder晚上的水题欢乐赛在AtCoder上打了一场,... 查看详情
10.14
考试comb爆炸。。刚好一会又起飞了。。。发挥真不稳定。。反思反思!! 题解: 第一题是个智商题。。模拟30,打了一个map求最小循环节骗了60,但是对于大数据1e9O(n)根本跑不完啊!!题目给的提示参悟不透。。在n+m的... 查看详情
10.14上午考试
T1定义tot=n+m 假设n是较小的那么每次操作相当于n=n*2 m=m-(tot-m)=2*m-tot即直接在modn+m意义下快速幂即可 #include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm 查看详情
markdownmac10.14(mojave)上的python3.7设置(代码片段)
10.8-10.14博客精彩回顾
一、优秀文章推荐1.devops学习笔记-jenkinspipeline流水线发布2.SQL抽象语法树及改写场景应用3.【Py4OH1.1.0】新版发布及鸿蒙设备Python网络编程简介4.SpringAOP面向切面编程,最佳实践分享5.MySQL事... 查看详情
10.14数据库环境搭建
第一步:安装wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b文件,安装过程中可能会遇到问题,把遇到的问题代码复制粘贴到360人工服务,查找方案后修复一般就可以了。第二部:修改数据库登录密码 1.登录到sql命令行 ... 查看详情
macOS Mojave (10.14) 到 Lion (10.7) 上的 JAVA_HOME 在哪里?
】macOSMojave(10.14)到Lion(10.7)上的JAVA_HOME在哪里?【英文标题】:WhereisJAVA_HOMEonmacOSMojave(10.14)toLion(10.7)?【发布时间】:2011-09-2902:59:57【问题描述】:Java是最新版本macOS上的可选包。然而,一旦安装,它似乎JAVA_HOME环境变量未正确设... 查看详情
上周热点回顾(10.8-10.14)
热点随笔:· 微软是如何重写C#编译器并使它开源的(LiamWang)· 京东云,100倍故障时长赔付,呵呵(影子卓卓)· 码农晋升为技术管理者后,痛并快乐着的纠结内心(IVAN-jsjwk)· 大数据不就是... 查看详情
CoreAudio Input Render 回调从外部音频接口 Mac OS 10.14 Mojave 渲染所有 0
】CoreAudioInputRender回调从外部音频接口MacOS10.14Mojave渲染所有0【英文标题】:CoreAudioInputRendercallbackrendersall0\'sfromexternalaudiointerfaceMacOS10.14Mojave【发布时间】:2018-12-1716:04:48【问题描述】:当我的Mac在10.11上时,我正在处理一个CoreAu... 查看详情
vmwareworkstationpro14安装macos10.14
一、百度网盘下载链接虚拟机自行百度下载MacOS10.14 链接:https://pan.baidu.com/s/1I1uGJjVvcegkSxrStx_8_A 提取码:j3e4 虚拟机mac插件 链接:https://pan.baidu.com/s/1xfdeHbtSit1_ZszyB8HzeQ 提取码:zzu... 查看详情