黑马程序员技术交流社区

标题: 对于字符abcdef.....n,求((a*31+b)*31+c)*31.....+n [打印本页]

作者: juanjuan    时间: 2016-10-7 23:52
标题: 对于字符abcdef.....n,求((a*31+b)*31+c)*31.....+n
  对于字符串abcdef...n  求字符串 ((a*31+b)*31+c)*31....+n ,求代码0.0 没思路,求高人指教

作者: 13902480061    时间: 2016-10-7 23:52
f(n)=f(n-1)*31+n递归就好了

作者: fdzx0707fh    时间: 2016-10-8 22:32

转化为数组  递归
recursion(int len)*31+char
作者: juanjuan    时间: 2016-10-8 23:19
fdzx0707fh 发表于 2016-10-8 22:32
转化为数组  递归
recursion(int len)*31+char

谢谢,大神
作者: juanjuan    时间: 2016-10-9 22:17
//用循环做更简单,谁还有更好的方法,继续......
String s = "abcdefg";

                        String res = null;

                        for(char i : s.toCharArray()) {

                                if(res != null) {

                                        res = "(" + res + ")*31 + " + i;

                                } else {

                                        res = "" + i;

                                }

                        }

                        System.out.println(res);

作者: juanjuan    时间: 2016-10-9 22:19
//用循环做更简单,谁还有更好的方法,继续......
String s = "abcdefg";

                        String res = null;

                        for(char i : s.toCharArray()) {

                                if(res != null) {

                                        res = "(" + res + ")*31 + " + i;

                                } else {

                                        res = "" + i;

                                }

                        }

                        System.out.println(res);

作者: juanjuan    时间: 2016-10-9 22:22
juanjuan 发表于 2016-10-8 23:19
谢谢,大神


private static String recursive(char[] chars, int pos) {

                if(pos == 0) {

                        return "" + chars[pos];

                }

                String res = recursive(chars, pos - 1);

                return "(" + res + ")*31 + " + chars[pos];

        }

//在外面调用上面函数

String s = "abcdefg";

System.out.println(recursive(s.toCharArray(), s.toCharArray().length - 1));
作者: juanjuan    时间: 2016-10-9 22:23
juanjuan 发表于 2016-10-8 23:19
谢谢,大神


private static String recursive(char[] chars, int pos) {

                if(pos == 0) {

                        return "" + chars[pos];

                }

                String res = recursive(chars, pos - 1);

                return "(" + res + ")*31 + " + chars[pos];

        }

//在外面调用上面函数

String s = "abcdefg";

System.out.println(recursive(s.toCharArray(), s.toCharArray().length - 1));
作者: juanjuan    时间: 2016-10-9 22:27
juanjuan 发表于 2016-10-8 23:19
谢谢,大神

//递归的方式:  
private static String recursive(char[] chars, int pos) {
        if(pos == 0) {
            return "" + chars[pos];
        }
        String res = recursive(chars, pos - 1);
        return "(" + res + ")*31 + " + chars[pos];
    }
//在外面调用上面函数
String s = "abcdefg";
System.out.println(recursive(s.toCharArray(), s.toCharArray().length - 1));
作者: juanjuan    时间: 2016-10-9 22:29
juanjuan 发表于 2016-10-8 23:19
谢谢,大神

//递归的方式:  
private static String recursive(char[] chars, int pos) {
        if(pos == 0) {
            return "" + chars[pos];
        }
        String res = recursive(chars, pos - 1);
        return "(" + res + ")*31 + " + chars[pos];
    }
//在外面调用上面函数
String s = "abcdefg";
System.out.println(recursive(s.toCharArray(), s.toCharArray().length - 1));
作者: songchangchang    时间: 2016-10-10 12:11
加油楼主,你可以的
作者: juanjuan    时间: 2016-10-10 23:07
songchangchang 发表于 2016-10-10 12:11
加油楼主,你可以的

谢谢,一起加油!!!!!
作者: juanjuan    时间: 2016-10-10 23:08
songchangchang 发表于 2016-10-10 12:11
加油楼主,你可以的

谢谢,一起加油!!!!!
作者: zhangyuren    时间: 2016-10-30 08:23
fdzx0707fh 发表于 2016-10-8 22:32
转化为数组  递归
recursion(int len)*31+char

我想请问这个recuision是在哪学的?

我之前不知道,请教教我.
作者: zhangyuren    时间: 2016-10-30 08:28
juanjuan 发表于 2016-10-9 22:17
//用循环做更简单,谁还有更好的方法,继续......
String s = "abcdefg";

你这个只是输出语句.

根本不计算

题目的思想是要计算.

你这样只用一部分题来讨论,有点偏.

当然,也可以.
作者: zhangyuren    时间: 2016-10-30 08:30
明白了.

知道楼主是要做这个输出语句.

挺有意思.

我也学习了.
作者: 笑对明天    时间: 2017-2-16 00:26
递归调用,这难度还可以吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2