1.用递归方法编写:用java语言写!

输出如下所示:
1
1 2 1
1 2 3 2 1
的代码帮我写下!
2.用一维数组输出等腰的杨辉三角。
3.下面的代码为什么二维数组的值是0呢?帮我修改下我代码同时说明下出错的原因!
public class Saddlepoints {
public static int saddlePoints(int table[][],int m,int n) {
table = new int[m][n];
int locumn=0;
int temp = 0;
for(int i = 0; i < m ; i++) {
int max = table[i][0];
for(int j = 1; j < n; j++) {
if(max < table[i][j]){
max = table[i][j];
locumn++;
}
}
temp = max;
for(int z = 0; z < m;z ++){
if(temp > table[z][locumn]){
temp = table[z][locumn];
}
}
if(temp == max) {
System.out.println("二维数组的鞍点的位置为于: \n"+"第"+i+"行第"+locumn+"列;值为:"+max);
break;
}
locumn = 0;
}
return temp;
}
public static void main(String[] args) {
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
System.out.print(table[i][j]+"\t");
}
System.out.println();
}

System.out.println(saddlePoints(table,3,3));
}

}

删除不好做,因为你是一个文件内容的删除。
可以用字符串数组来保存每一行的值,删除了之后,再重新保存进去。
可以这样做:比如说你的文件路径:c:/a.txt
1.File file = new File("c:/a.txt");
2.BufferedReader reader = new BufferedReader(file);
3.byte[] strValue = new byte[(int)file.length()];
4.String str = reader.read(strValue);//按文件大小一次读入
5.String rows = str.split("\r\n");//按换行符拆分,即数组的每一条,对应文件每一行的内容。
6.如果要删除按条件删除某一行,只需要判断字符串数组是否存在这一行了,如果存在,替换为“”即可。
7.Writer writer = new FileWriter(file);
8.
for(int i=0;i<rows.length;i++){
writer.write(rows[i]);
}

只是分析了一下,具体步骤还是你来完成了。。

RandomAccessFile raf = new RandomAccess("wenjian.txt");
char ch[] = new char[3];
char to[] = {'s','s','x'};
boolean get = false;
while(get){
raf.readChars(ch);
if(ch[0]=='d' && ch[1]=='d' && ch[2]=='s'){
get = true;
}
}
raf.seek(raf.getFilePointer() -6 );
raf.writeChars(to);

这个代码就是把wenjian.txt中出现的第一个dds修改成ssx。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-16
使用数组
class YangHui{
int a[][]=new int[11][11];

public void show(){
for(int j=0;j<10;j++){
if(j==0){
a[0][j]=1;
}
else{
a[0][j]=0;
}
}

for(int i=0;i<10;i++){
a[i][0]=1;
}

for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(a[i][j]!=0){
System.out.printf("%d ",a[i][j]);
}
a[i+1][j+1]=a[i][j]+a[i][j+1];
}
System.out.println();
}
}
}
public class YangHuiTest{
public static void main(String args[]){
Yanghui y=new Yanghui();
y.show();
}
}
////////////////////////////////////////////////////////////////////////
使用递归
public class YangHuiTest{
public static void main(String args[]){
for(int i=0;i<10;i++){
for(int j=0;j<=i;j++){
System.out.printf("%d ",getYang(i,j));
}
System.out.println();
}
}
public static int getYang(int m, int n){
if(n==0||m==n){
return 1;
}
else{
return getYang(m-1,n-1)+getYang(m-1,n);
}
}
}
//////////////////////////////////////////////////////////
按照计算求值
class Triangle{
int s1=1;
public int cal(int m){
return m==0||m==1?1:m*cal(m-1);
}
}
public class Test{
public static void main(String args[]){
int d;
Triangle t=new Triangle();
for(int i=0;i<10;i++){
for(int j=0;j<=i;j++){
if(i==0||i==j)
d=1;
else
d=t.cal(i)/(t.cal(j)*t.cal(i-j));
System.out.printf("%d ",d);
}
System.out.println();
}
}
}追问

老兄你下面的程序没有帮我解决!
你可以用递归方法写个代码吗?
输出如下所示:
1
1 2 1
1 2 3 2 1
的代码帮我写下!

第2个回答  2011-03-16
你那个图好像不是什么杨辉三角吧?
我按照图的意思给你写了个程序,可以运行的:
public static void main(String[] args) {
pain(5);
}
//一共输出t行
public static void pain(int t){
for(int i=1;i<=t;i++){
paine(i,t);
}
}
//输出第e行,总行数为t行
public static void paine(int e,int t){
for(int i=0;i<t-e;i++){
System.out.print(" ");
}
for(int i=1;i<=e;i++){
System.out.print(i);
}
for(int i=e-1;i>=1;i--){
System.out.print(i);
}
System.out.println();
}
输出: 1
121
12321
1234321
123454321
***************************************************************************************
你在saddlepoints方法中重新new了一个table,所以每次table被初始化为全零矩阵
改成这样就好了,
public static int saddlePoints(int table[][], int m, int n) {
int locumn = 0;
int temp = 0;
for (int i = 0; i < m; i++) {
int max = table[i][0];
for (int j = 1; j < n; j++) {
if (max < table[i][j]) {
max = table[i][j];
locumn++;
}
}
temp = max;
for (int z = 0; z < m; z++) {
if (temp > table[z][locumn]) {
temp = table[z][locumn];
}
}
if (temp == max) {
System.out.println("二维数组的鞍点的位置为于: \n" + "第" + i + "行第" + locumn
+ "列;值为:" + max);
break;
}
locumn = 0;
}
return temp;
}

public static void main(String[] args) {
int[][] table = new int[3][3];
table[0][0]=1;
table[0][1]=2;
table[0][2]=3;
table[1][0]=4;
table[1][1]=5;
table[1][2]=6;
table[2][0]=7;
table[2][1]=8;
table[2][2]=9;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(table[i][j] + "\t");
}
System.out.println();
}

System.out.println(saddlePoints(table, 3, 3));
}

用java递归算法求一个数字的阶乘
1、采用自顶向上的递归方法,代码如下:import java.util.Scanner;public class Test {@SuppressWarnings("resource")public static void main(String[] args) {\/\/ 从控制台输入一个整数Scanner in = new Scanner(System.in);int b = in.nextInt();\/\/ 声明一个Test对象,调用cal方法获得结果Test ...

给定一串数字,用递归的方法求出某个数字的位置,使用java
完整代码(递归就是在方法里调用自身而已,没什么稀奇的)public class DayMain { private String[] strArray;public String[] getStrArray() { return strArray;} public void setStrArray(String[] strArray) { this.strArray = strArray;} public void findIndexCycle() throws IOException{ System...

用java递归方法实现
1、递归做为一种算法在程序设计语言中广泛使用,是指函数\/过程\/子程序在运行过程中直接或间接调用自身而产生的重入现象。2、递归算法一般用于解决三类问题:1)数据的定义是按递归定义的。(Fibonacci(斐波那契)的函数)2)问题解法按递归算法实现。(回溯)3)数据的结构形式是按递归定义的。(树的遍历...

用Java编写一个完整的递归程序,实现如下功能:从键盘输入数字n,程序自动...
public static void main(String[] args){ System.out.println("输入n,按回车:"); Scanner s = new Scanner(System.in); Integer n = Integer.parseInt(s.next()); Integer re = factorial(1, n); System.out.println(re); } public static Integer factorial(Integer...

用Java的递归方法写一个程序,判断一个数是否是回文数,最好能用在Eclips...
非要递归么,public static void main(String[] args) throws Exception { String string="1234";StringBuilder stringBuilder=new StringBuilder(string);if(stringBuilder.reverse().toString().equals(string))System.out.println("回文");else System.out.println("不是回文");} ...

用递归算法求1~100的和,用java写。
递归是计算机科学的一个重要概念,递归的方法是程序设计中有效的方法,采用递归编写。递归能使程序变得简洁和清晰。每次调用在规模上都有所缩小(通常是减半);相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入);在问题的规模极小时必须用直接给出解答而不再进行...

求一个用java代码写出一个 用递归函数实现一个n的阶乘 要求n是从键 ...
import java.util.Scanner;public class Factorial { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入n:"); long n = Long.parseLong(sc.nextLine()); System.out.println(getFac(n)); } public static long...

java递归方法
一般递归只实现一个方向的逻辑,把两个方向的逻辑放到一方法里并不好,不容易控制,实现也很麻烦,考虑到维护时的难度请不要在实际项目中使用。搞了好一会,搞出个这样的输出2N-1行星号,中间最长的一行不重复,如果楼主希望重复中间一行,可以对代码做一点点改动。\/ 入口,传入N \/ public static ...

用java编写程序,输出fibonacci数列的前20项
运用递归来写fibonacci的算法,其中当输入0时,返回0,当输入1时,返回1 public static void main(String args[]){ int index = 0; while(index < 20) { System.out.println(fibonacci(index++)); }}private static int fibonacci(int a){ if (a == 0) return 0; i...

java递归是什么意思?怎么用?通过案例来身临其境的学习java递归
下面,我们以简单的“洗脸”为例来解释递归。假设洗脸的步骤可以简化为:打湿、涂洗面奶、冲洗和擦干。将这个流程用Java函数表示,每次调用一个递归函数,顺序执行洗面步骤直至完成。该例子展示,递归函数能清晰地模拟自然语言描述的过程,使代码更容易理解。然而,重要的是确保正确的递归退出条件,防止无限...

相似回答
大家正在搜