用java:设计函数f(x),f(x)=1(x=1时;f(x)=3*f(x-1)+2(>1时);x为正整数。
5个回答
展开全部
采用非递归的方式,从下往上计算:
public class Test3 {
public static void main(String [] args) {
Test3 t = new Test3();
System.out.println("f(1) = " + t.f(1));
System.out.println("f(2) = " + t.f(2));
System.out.println("f(3) = " + t.f(3));
System.out.println("f(4) = " + t.f(4));
System.out.println("f(10) = " + t.f(10));
}
public int f(int x) {
int res = 1;
for(int i=2; i<=x; i++) {
res = res * 3 + 2;
}
return res;
}
}
输出结果:
f(1) = 1
f(2) = 5
f(3) = 17
f(4) = 53
f(10) = 39365
public class Test3 {
public static void main(String [] args) {
Test3 t = new Test3();
System.out.println("f(1) = " + t.f(1));
System.out.println("f(2) = " + t.f(2));
System.out.println("f(3) = " + t.f(3));
System.out.println("f(4) = " + t.f(4));
System.out.println("f(10) = " + t.f(10));
}
public int f(int x) {
int res = 1;
for(int i=2; i<=x; i++) {
res = res * 3 + 2;
}
return res;
}
}
输出结果:
f(1) = 1
f(2) = 5
f(3) = 17
f(4) = 53
f(10) = 39365
展开全部
public class Test1 {
public static int f(int x){
if(x<1){
System.out.println("x不能小于1");
return 0; //
}
if(x==1){
return 1;
}else{
return 3*f(x-1)+2;
}
}
public static void main(String[] args) {
System.out.println("f(1)="+f(1));
System.out.println("f(2)="+f(2));
System.out.println("f(3)="+f(3));
System.out.println("f(4)="+f(4));
System.out.println("f(5)="+f(5));
System.out.println("f(6)="+f(6));
}
}
// 运行结果:
f(1)=1
f(2)=5
f(3)=17
f(4)=53
f(5)=161
f(6)=485
// test ok
public static int f(int x){
if(x<1){
System.out.println("x不能小于1");
return 0; //
}
if(x==1){
return 1;
}else{
return 3*f(x-1)+2;
}
}
public static void main(String[] args) {
System.out.println("f(1)="+f(1));
System.out.println("f(2)="+f(2));
System.out.println("f(3)="+f(3));
System.out.println("f(4)="+f(4));
System.out.println("f(5)="+f(5));
System.out.println("f(6)="+f(6));
}
}
// 运行结果:
f(1)=1
f(2)=5
f(3)=17
f(4)=53
f(5)=161
f(6)=485
// test ok
追问
用java语言:编程输入两个数整数想x,y,求x的y次幂。
追答
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
int x,y;
Scanner sc = new Scanner(System.in);
System.out.print("输入底数x:");
x=sc.nextInt();
System.out.print("输入指数y:");
y=sc.nextInt();
System.out.println("x的y次方幂="+(int)(Math.pow(x, y)));
}
}
// 运行结果:
输入底数x: 4
输入指数y: 2
x的y次方幂=16
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
递归一下:
public int fx(int result, int x){
if(x == 1){
return result;
}else{
result = 3*result + 2;
return fx(result, x-1);
}
}
调用时就
int x = 5;
System.out.println(fx(1, x));
public int fx(int result, int x){
if(x == 1){
return result;
}else{
result = 3*result + 2;
return fx(result, x-1);
}
}
调用时就
int x = 5;
System.out.println(fx(1, x));
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
递归和斐波那契数列(fibonacci)一样
测试的数不要太大 不然你就等吧
public class TestDG {
static long count;
static int fx(int x){
if(x>1){
//System.out.printf("fx(%d):fx(%d)+fx(%d)\n",x,x-1,x-2);
System.out.println(count++);
return fx(x-1)+fx(x-2);
}else{
return 1;
}
}
public static void main(String[] args){
System.out.println(fx(27));
}
}
测试的数不要太大 不然你就等吧
public class TestDG {
static long count;
static int fx(int x){
if(x>1){
//System.out.printf("fx(%d):fx(%d)+fx(%d)\n",x,x-1,x-2);
System.out.println(count++);
return fx(x-1)+fx(x-2);
}else{
return 1;
}
}
public static void main(String[] args){
System.out.println(fx(27));
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
f(x){
if(x=1){x=3*(x-1)+2}
else{System.out.println("x为整数"); }
}
if(x=1){x=3*(x-1)+2}
else{System.out.println("x为整数"); }
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询