如何用python和java编写一个包含迭代和递归函数的程序来打印前100个元素。

根据等式p(n) = p(n-1)+13
p(0)=19,因此第一个元素p(1)等于p(1-1)+13,也就是19+13=32,第二个元素p(2)等于p(2-1)+13=32+13=45,以此类推,需要如何用python和java编写一个包含迭代和递归函数的程序来打印前100个元素。从1开始。

输出结果

img


会显示n和迭代结果和递归结果
注意图片上的结果不是p(n) = p(n-1)+13的结果,但是输出结果得和图片上的形式一样

img

建一个test类,添加如下代码:

public class test {

    //迭代
    public static int dd(int n){
        int a = 19;
        int t=a;
        for(int i=2;i<=n;i++){
            t = a+13;
            a = t;
        }
        
        return t;
    }
    //递归
    public static int dg(int n){
        if(n==1)
            return 19;
        else
            return dg(n-1)+13;
    }
    public static void main(String[] args) {
        System.out.println("n\t Iterative\t Recursive");
        for(int i=1;i<=4;i++){
            System.out.print(i);
            System.out.print("\t ");
            System.out.printf("%-9d",dd(i));
            System.out.print("\t ");
            System.out.printf("%-9d",dg(i));
            System.out.println();
        }

    }

}

public static int getNum(int num){
  if(num==0){
    return 19;
  }else {
    return getNum(num-1)+13;
  }
}

python递归实现:

p0=19
def cmp(x):
    if x==0:
        return p0
    return cmp(x-1)+13
print('{}{:>20}{:>20}'.format('n', 'Iterative', 'Recursive'))
for i in range(1,101):
   print(f'{i}{cmp(i):>20}{cmp(i):>20}')


Python 代码如下,有点类似斐波那契数列原理


def p(n: int)->int:
    a = 19
    print(a, end='\t')

    for i in range(1, n):

        a, b = a + 13, a

        print(a, end="\t")

    return


if __name__ == '__main__':
    p(100)


19  32  45  58  71  84  97  110 123 136 149 162 175 188 201 214 227 240 253 266 279 292 305 318 331 344 357 370 383 396 409 422 435 448 461 474 487 500 513 526 539 552 565 578 591 604 617 630 643 656 669 682 695 708 721 734 747 760 773 786 799 812 825 838 851 864 877 890 903 916 929 942 955 968 981 994 1007    1020    1033    1046    1059    1072    1085    1098    1111    1124    1137    1150    1163    1176    1189    1202    1215    1228    1241    1254    1267    1280    1293    1306    
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632