/** * 将字符串翻转 * * @param str * @return */ public static String reverceString(String str) { if (null == str || str.length() <= 1) { return str; } return reverceString(str.substring(1)) + str.charAt(0); }
计算a+aa+aaa+……+aa…a(n个a)的值,n和a的值由键盘输入
/** * 使用递归操作 * 计算a+aa+aaa+……+aa…a(n个a)的值,n和a的值由键盘输入 * @param a * @param n * @return */ public static int sumOfMultis1(int a, int n) { if (n == 1 || n == 0) return getNum2(n) * a; return sumOfMultis1(a, n - 1) + getNum2(n) * a; } public static int getNum2(int n) { if (n == 1 || n == 0) return getNum(n); return getNum2(n - 1) + getNum(n); } public static int getNum(int n) { if (n == 0) return 0; if (n == 1) return 1; return getNum(n - 1) * 10; } /**普通的计算【建议使用,nnd面试的时候非要让递归】 * 计算a+aa+aaa+……+aa…a(n个a)的值,n和a的值由键盘输入 * * @param str * @return */ public static int sumOfMultis(int a, int n) { int a1 = a; int sum = 0; int i = 1; while (i <= n) { if (i != 1) { a = (a * 10) + a1; } sum += a; i++; } return sum; }